关于如何设置dbase关系的问题(新手,这可能是微不足道的)
遵循django教程(民意调查,选择);据了解,1民意调查有很多选择,因此许多选择指向单一民意调查。
class Poll(models.Model):
question = models.CharField(max_length=200)
...
class Choice(models.Model):
poll = models.ForeignKey(Poll)
...
问题: 我有一个有地方,人等的数据库(多表)。 我的表的一个子集具有类似的字段。 我想要一个地方有1+ phone_number。 我希望一个人拥有1+个phone_number。 我可能希望其他表有1+个phone_number。
如果我遵循民意调查/选择方法,那么我的问题就会出现在PhoneNumber下面显示的问号上。
class Person(models.Model):
firstname = models.CharField(max_length=20)
...
class Place(models.Model):
description = models.CharField(max_length=200)
...
class PhoneNumber(models.Model):
??? = models.ForeignKey(???)
...
我考虑过使用继承,以便Person和Place都从相同的基类继承。但我可能还有其他字段,除了phone_number,我有类似的情况,并跨越不同的表子集。 E.g。
phone_number(s) comments
--------------- --------
Person yes no
Place yes yes
Contract no yes
...
如何正确设计这些类型的关系的任何建议将不胜感激。谢谢。
答案 0 :(得分:1)
我认为你正在寻找Generic Relations。 Also here
答案 1 :(得分:0)
检查ContenType应用,特别是Generic Relations。基本上,您将人员/地点对象的类型和ID存储在PhoneNumber对象上。