我讀過很多關於OneToOneField,ManyToManyField和Foreign Key的帖子,但他們並不十分清楚。我對Django和python編程非常陌生,目前正在嘗試開發模型。有人能用簡單的語言向我解釋,最好用例子來說明,他們各自是什麼?Django OneToOneField,ManyToManyField,Foreign Key
5
A
回答
8
想象一下,一個數據庫,其中存儲您的藏書:
from django.db import models
class Place(models.Model):
address = models.CharField(max_length=50)
country = models.CharField(max_length=50)
class Publisher(models.Model):
name = models.CharField(max_length=30)
place = models.OneToOneField(Place, primary_key=True)
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
class Book(models.Model):
title = models.CharField(max_length=100)
publisher = models.ForeignKey(Publisher)
authors = models.ManyToManyField(Author)
一個一對多/外鍵
每Book
有一個Publisher
,但Publisher
可能已經出版多本書籍。因此他們處於一對多(書到發行商)的關係。
1對一個
每Publisher
位於一個Place
,每Place
只能容納一個Publisher
。因此他們處於一對一的關係。您可以將Place
信息(address
和country
)與Publisher
模型放在一張表中,但有時候最好有獨立的模型。例如,如果您不知道每個Publisher
的Place
,則不需要佔用大量空行。
許多一對多
每個Book
還具有一個或多個Author
秒。然而,Author
可能寫了多個Book
,所以它們處於多對多的關係。
如果你還需要一些指導,我建議看看the model chapter of the Django Book。
相關問題
- 1. Django OneToOneField子集ManyToManyField
- 2. Django CBV Forms prepopulated foreign key dataset
- 3. Django group by foreign key id
- 4. Django從ManyToManyField OneToOneField的反向查找
- 5. C#,SQL FOREIGN KEY
- 6. DROP FOREIGN KEY
- 7. SQL - SELECT - FOREIGN KEY
- 8. SQL FOREIGN KEY的
- 9. H2和FOREIGN KEY
- 10. Mongo Spring Data「foreign」key
- 11. FOREIGN KEY MULTI FIELD HELP!
- 12. Fluent NHibernate Foreign Key/Cascading
- 13. FOREIGN KEY MySQL錯誤
- 14. ActiveRecord Association without Foreign Key
- 15. FOREIGN KEY - 執行表
- 16. mysql alter table FOREIGN KEY!
- 17. 指定中介模型的Django ManyToManyField。通過OneToOneField關係
- 18. 關於Django的OneToOneField,ManyToManyField和ManyToOneField的說明
- 19. PRIMARY KEY和FOREIGN KEY到我的表
- 20. SQL和FOREIGN KEY,參考
- 21. SQLite FOREIGN KEY鍵入名稱
- 22. mysql drop foreign key without table copy
- 23. FOREIGN KEY創建的差異
- 24. FOREIGN KEY約束例外
- 25. PostgreSQL的:FOREIGN KEY/ON DELETE CASCADE
- 26. MySQL CONSTRAINT FOREIGN KEY語法
- 27. SQL語法help - FOREIGN KEY
- 28. MySQL問題添加FOREIGN KEY?
- 29. MySQL中創建FOREIGN KEY
- 30. MySQL CREATE TABLE&FOREIGN KEY錯誤
優秀的答案。我還建議OP閱讀關於數據庫關係的內容,因爲它們直接應用這些Django字段。試試這個 - http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561 –
這清除了一切爲我!非常感謝你!對不起,我沒有足夠的信譽來解答你的答案=/ – Rjzheng
@Rjzheng樂意幫忙。 (: – Banana