我正在mysql中创建一个数据库,我的问题是是否应该使引用已经唯一主键的外键也唯一?
取决于。以下是两种可能的情况:
1:N表homes
有一个表owners
的外键owner_id
,说明哪个所有者拥有一个住宅。由于业主可以拥有多套房子,有些房子可能有相同的owner_id
,所以它不应该是唯一的。
1:1表tax_records
有一个表owners
的外键owner_id
,说明谁是税务记录的所有者。由于所有者只能有一个税务记录,因此owner_id
应在tax_records
表中只显示一次,因此应是唯一的请记住1:1关系可以通过两种方式实现,您也可以在owners
表中有一个外键tax_record_id
。正确的选择是将外键放在实体中;属于";到另一个实体。例如,税务记录属于所有者,因此您应该在tax_records
表中有一个外键owner_id
。