django----數據庫表設計
阿新 • • 發佈:2019-03-24
prim 查看 row big choice 查詢 HICE style sum
設計表時註意的幾點:
1、 nid = models.AutoField(primary_key=True) #如果不指定django會默認加上id的
nid = models.BigAutoField(primary_key=True) #但那些整型滿足不了你的時候,就用BigAutoField
2、對於類的註釋一般加在類裏面
3、verbose_name=“標題” 字段的中文提示
4、ForeignKey(to = "表名",tofield= "字段") #這兩個to可以不用寫,但是關聯的表名一定要寫
5、releated_name = "uuu" 反向查詢。如果一個表中有多個ManyTwoMany()或者ForeignKey()必須加上releated_name
6、字段經常變動的適合連表
字段變化小,不怎麽變的適合在一個表中,不進行連表:就用choices
吧班主任和老師可以放到一個表中、因為他們有相同的屬性,如果屬性全是一樣的,可以放在一個表裏(推薦)
也可以分開放,老師表是老師表,班主任表是班主任表。這樣就會進行連表操作,連表有性能消耗。
示例
class News(models.Model): title = models.CharField(max_length=32) summary = models.CharField(max_length=255) news_type = models.ForeignKey(to="NewsType") class NewsType(models.Model): type_title = models.CharField(max_length=32) News: id title summary news_type_id t.... 科技... 2 t.... 科技... 1 t.... 科技... 2 NewsType: id title 圖片 挨踢1024 段子 # 查看所有新聞 new_list = models.News.objects.all() for row in new_list: print(row.title,row.summary,row.news_type.title)
放在一張表上(choices)
class News2(models.Model): title = models.CharField(max_length=32) summary = models.CharField(max_length=255) news_type_chices = ( (1, ‘圖片‘), (4, ‘挨踢1024‘), (3, ‘段子‘), ) news_type = models.IntegerField(choices=news_type_chices) # 查看所有新聞 new_list = News.objects.all() for row in new_list: print(row.title,row.summary,row.get_news_type_display()) 顯示row.get_news_type_display() (1、4、3)中對應的 (‘圖片‘,‘挨踢1024‘,‘段子‘)
django----數據庫表設計