如何創建如下關係:與兩個或更多其他表具有特定關係的Django表
想象一下餐廳。他們的數據表中有一個用於配方,另一個用於配料。還有另外一個,其中包含食物種類,如晚餐,午餐,早餐,甜點,湯。我們將其命名爲cat_food。
廚師想通過使用cat_food來分類食譜和配料。例如,從食譜到cat_food在所有其他列中存在「ManyToOne」關係。所以一個食譜有一個類別,一個類別有幾個食譜。
但廚師也想要這樣分類配料。在這裏,我們將有一個'ManyToMany'的關係,而我們可以在甜點食譜中使用一種成分,就像在晚餐或湯配方中一樣。
一個解決方案可能是爲食譜和配料創建一個cat_food表。但是,如何創建cat_food表來存儲配方或配料?(取決於給出的內容)
我的想法是使用中間模型並將'foreignKeys'與字段選項'blank = True'和'null = True'。但我對此並不滿意。 它可能會導致長期的一些數據庫問題?有沒有更好的方法來處理這種情況?
我喜歡這個想法,但是......我想盡可能減少冗餘。我的意思是,如果有一個新的食品cat_food,那麼我只是想把它放在那裏作爲食譜或配料的新選項。在這裏,我的例子有點太過分了,因爲很難創建一個新的食品類別...假設新的食品是天文晚餐......現在,當我添加一個新的配方或成分時,我想要一個將所有可能的cat_food項目下拉菜單。我想盡可能少地使用列。 –
這很有道理,也許你可以創建第三種內容類型?我認爲您可以導入您單獨創建的內容類型。 許多關係也可能起作用,我之前使用過這些關係,它們非常有用。嘗試此鏈接,看看它是否會工作 - https://docs.djangoproject.com/en/1.9/topics/db/examples/many_to_many/ – overstreetce
我的問題是,兩個表溝通相同的一個,這是貓食。通過這個我有一個食譜和cat_food成分的專欄。當有人給出另一個是空的。我可以通過「blank = True」和「null = True」來處理這個問題。但是我對後面的故障排除不太確定。 –