我的理解是 OneToOneField 仅用于Table2(最喜欢的水果)中的 1 行数据链接到Table1(人名)中的一行数据,ForeignKey 用于Table2(汽车模型)中的多行数据到 1 行表 1中的数据(品牌/制造商)。
我的问题是,如果我有多个表,但每个表中只有一行数据链接回Table1 ,我应该使用什么。例如:我有表1为“汽车”,我的其他表是“保险信息”、“汽车信息”、“维修历史”。我应该使用 ForeignKey 还是 OneToOne?
你只需要问自己“对象 A 可以有很多对象 B,或者对象 B 有很多对象 A”吗?
这些表关系每个都可能不同:
ForeignKey 表示您正在引用另一个表中存在的元素。OneToOne 是一种 ForeignKey,其中 table1 和 table2 的元素唯一绑定在一起。
您最喜欢的水果示例是 OneToMany。因为每个人都有一个独特的最喜欢的水果,但每个水果可以有多个人将该特定水果列为他们的最爱。
OneToOne 关系可以通过您的 Car 示例完成。Cars.VIN 可以与 CarInfo.VIN 建立 OneToOne 关系,因为一辆车只会有一个 CarInfo 与之关联(反之亦然)。