在一个简单的表设计中,我更喜欢在单独的表中保留人员的地址(人是以person_id作为PK的基表),将person_id存储在地址表中或将address_id存储在人表?地址表确实需要单独的PK,因为它用于存储其他实体(如企业)的地址。在一个表格中存储具有相同属性的地址,无论是个人还是企业,我们也可以将其用于分析。
答案 0 :(得分:1)
如果每个person
都需要address
,但address
不一定属于person
(因为它可能属于business
),制作address_id
的{{1}}部分。然后,您不需要外键字段的NULL值。
答案 1 :(得分:0)
决定的主要标准是如果需要以下内容:
多人应该能够共享同一个地址(person-id在person-table中)。
一个人应该能够拥有多个地址(地址表中的person_id)。
如果两者都为真,则需要一个包含person_id和address_id的附加表。如果两者都被禁止,则可以在外键列上添加唯一约束。