Database-Design
在食物成分數據庫中,您將如何模擬食物與其營養素的關係?
我正在建構一個顯示食物營養成分的 Web 應用程序。
我的數據目前儲存在一個
foods
表中,其中每個營養素都是一個帶有數值的列,例如:然而,這意味著我必須在我的應用程序中硬編碼營養名稱(例如“鈉”)和單位(例如“mg”)。我更希望這也來自數據庫,我想這將是某種固定定義表,例如:
我想看看是否有更好的方法來引用定義,而不是在
foods
表中創建更多列,例如:所以我天真地實現了以下內容:
但是我注意到表格中有很多重複,
food_nutrients
即每種食物的營養值大約有 30 行,我想知道 a)這是否是食品數量不斷增加的數據庫中的一個問題,以及 b)是否有更合適的模型有更多經驗的人可以建議嗎?
你的
food_nutrients
桌子設計是完美的,不要改變它。當然會有重複,因為許多食譜需要一湯匙鹽。這是您的數據中固有的重複,沒有什麼壞處——畢竟,您正在建模一個重複的現實。我相信任何擺脫重複的嘗試都會使數據模型複雜化和惡化。