我的理解是,OneToOneField仅用于 Table2 (收藏水果)中的一行数据,这些数据链接到 Table1 (人名),ForeignKey用于 Table2 (车型)中的多行数据到 Table1 (品牌/制造商)。
我的问题是,如果我有多个表但每个表中只有一行数据链接回 Table1 ,我应该使用什么。例如:我将Table1设为“Cars”,其他表格为“Insurance Info”,“Car Info”,“Repair History”。我应该使用ForeignKey还是OneToOne?
答案 0 :(得分:6)
你只需要问自己“对象A可以有多个对象B,或对象B有多个对象A”吗?
这些表关系各有不同:
答案 1 :(得分:2)
ForeignKey表示您正在引用另一个表中存在的元素。 OneToOne是一种ForeignKey,其中table1和table2的元素唯一地绑定在一起。
你最喜欢的水果例子是OneToMany。因为每个人都有一个独特的喜爱的水果,但每个水果可以有多个人列出特定的水果作为他们的最爱。
可以使用您的Car示例完成OneToOne关系。 Cars.VIN可能与CarInfo.VIN有一个OneToOne关系,因为一辆车只会有一个与之相关的CarInfo(反之亦然)。