SQL-表关系,主要(PK/FK)
问题描述:
我是SQL新手,我有一个关于表关系的问题。目前,我有我的数据库中下表:SQL-表关系,主要(PK/FK)
人:
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_Section:
Summary_ID (PK)
InvoiceNumber
Date
DueDate
Detailed_Section:
Detailed_ID (PK)
Person_ID (FK)
Amount
Info
基本上,每家公司都有多人和接收一张发票。
每个发票被分成两个部分:
- 摘要
- 详细
的摘要部分显示公司名称,公司地址,发票号,发票日期,&由于日期。
详细部分显示该人的姓名,金额,&附加信息。
我对这一切都错了吗?什么是最好的方式去做这件事?谢谢!
编辑:
关注:我在这种情况下正确地分配外/主键?
答
PK/FK的分配似乎没问题。虽然我会建议如下:
- 如果您使用的是任何一种框架,请尽量与其惯例保持一致。例如,Ruby on Rails通常将主键(如果它只是一列)作为所有表的ID进行调用。注意:跨表的列名不必是唯一的。
- 您是否真的需要将数据库中的摘要和详细部分分开?您可以在一张表中合并发票,汇总和详细信息,然后只检索/显示所需的列。这既是一个设计和工程问题。
- 设计:两张发票可以共享一个部分吗?
- 工程:您认为可以编辑/检索这些部分多少次?
+0
好点,我将结合发票表格并对PK进行更改。谢谢! – Dom 2012-08-16 03:48:46
你有什么具体问题? – RedFilter 2012-08-16 03:21:43
假设所有外键都链接回相同名称的主键,这些关系对我来说看起来很好。 – Adrian 2012-08-16 03:31:08