繁体   English   中英

SQL-表关系,主要是(PK / FK)

[英]SQL - Table Relationships, Primarily (PK/FK)

我是SQL的新手,我对表关系有疑问。 当前,我的数据库中有以下表格:

人:

Person_ID (PK)
Name
Company_ID(FK)
Phone
Email

公司:

Company_ID (PK)
Name
Address
City
State
Invoice_ID (FK)

发票:

Invoice_ID (PK)
Summary_ID (FK)
Detailed_ID (FK)

摘要部分:

Summary_ID (PK)
InvoiceNumber
Date
DueDate

详细部分:

Detailed_ID (PK)
Person_ID (FK)
Amount
Info

基本上,每个公司都有多人,并且会收到一张发票​​。

每张发票分为两部分:

  • 摘要
  • 详细

section shows the company name, company address, invoice number, invoice date, & due date. 部分显示公司名称,公司地址,发票编号,发票日期和到期日。

section shows the person's name, amount, & additional info. 部分显示此人的姓名,金额和其他信息。

我要解决所有这些错误吗? 最好的方法是什么? 谢谢!

编辑:

关注:在这种情况下,我是否正确分配了外键/主键?

PK / FK分配似乎还可以。 尽管我建议以下内容:

  1. 如果您使用任何类型的框架,请尝试与其惯例保持一致。 例如,Ruby on Rails通常将主键(如果只是一列)作为所有表的ID。 注意:跨表的列名不必唯一。
  2. 您是否真的需要在数据库中将摘要部分和详细部分分开? 您可以将“发票”,“摘要”和“详细”合并在一个表中,然后仅检索/显示所需的列。 这既是设计问题,也是工程问题。
    • 设计:两个发票可以共享一个部分吗?
    • 工程:您认为这些节可以被编辑/检索多少次?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM