我是Django的新手,我正在編寫電話簿的簡單模型。Django模型與項目列表
我有對象Person
和Contact
每個人都可以有多個聯繫人。
我有兩種建模方法,但我不確定哪一個是正確的。
第一種方法:
class Contact(models.Model):
phone_number = models.CharField(max_length=20)
name = models.CharField(max_length=100,blank=True)
class Person(models.Model):
owner = models.OneToOneField(User,unique=True,primary_key=True)
phone_number = models.CharField(max_length=20,unique=True)
name = models.CharField(max_length=100,blank=True)
contacts = models.ManyToManyField('Contact', blank=True)
第二種方法:
class Contact(models.Model):
possessor = models.ForeignKey(Person,related_name='possessor')
phone_number = models.CharField(max_length=20)
name = models.CharField(max_length=100,blank=True)
class Person(models.Model):
owner = models.OneToOneField(User,unique=True,primary_key=True)
phone_number = models.CharField(max_length=20,unique=True)
name = models.CharField(max_length=100,blank=True)
我不知道哪種方法比較好(正確?),後來更容易進行查詢。
謝謝!
感謝您的回答。我認爲一個聯繫人只能屬於一個人。由於我想存儲該聯繫人的名稱(每個人都可以爲他們的聯繫人設置)。你認爲這是好方法嗎? – bla0009
聽起來你的要求正在引導你走向第二個方案。 –
謝謝!我會接受這個答案。 – bla0009