OneToOneFiled 放在哪张表?

2018-04-25 14:08:29 +08:00
 alvy

有表 A 和表 B1-B5 这 5 张表都是 OneToOne 的关系,那么:

  1. 表 A 写 5 个 OneToOneField
  2. B1-B5 各写一个 OneToOneFiled

请问哪种写法比较好?

2387 次点击
所在节点    Django
2 条回复
dataGridView
2018-04-26 00:01:34 +08:00
```
class Person(models.Model):
name = models.CharField(max_length=20)

class PersonDetail(models.Model):
age = models.IntegerField(10)
email = models.EmailField()
  person = models.OneToOneField(Person)
```
如果 B 表示细节的话,写在 B 里吧。(上述类比)
geeklian
2018-05-04 14:32:21 +08:00
如果刪除 A 表條目,B 表條目就無用了,那就放在 B 表,反之,放在 A 表。
但如果沒有這種關係,那就隨便放在那個表,然後在 on_delete 上設置刪除時的操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX