使用哪个:OneToOne vs ForeignKey?

Wes*_*ley 4 python django

我的理解是,OneToOneField只用于Table2(收藏水果)中的1行数据,链接到Table1(人名)中的一行数据,而ForeignKey用于Table2中的多行数据(Car models)到1行表1中的数据(品牌/制造商).

我的问题是,如果我有多个表,但每个表中只有一行数据链接回Table1,我应该使用什么.例如:我将Table1设为"Cars",其他表格为"Insurance Info","Car Info","Repair History".我应该使用ForeignKey还是OneToOne?

jdi*_*jdi 7

你只需要问自己"对象A可以有多个对象B,还是对象B有很多对象A"?

这些表关系各有不同:

  1. 汽车可以有一个或多个保险单,保险单只适用于一辆汽车.如果汽车只能有一辆,那么它可能是一对一的.
  2. Car可以有许多修复历史记录行,因此这将是修复历史记录中的外键,与Car作为一组的背面关系.
  3. Car Info类似于django中的UserProfile概念.如果它是真正独特的信息,那么它也将是一对一的.但是,如果您将汽车信息定义为可应用于类似汽车模型的一般描述,那么它将是汽车表上的外键以引用汽车信息