Database-Design

在食物成分數據庫中,您將如何模擬食物與其營養素的關係?

  • November 11, 2021

我正在建構一個顯示食物營養成分的 Web 應用程序。

我的數據目前儲存在一個foods表中,其中每個營養素都是一個帶有數值的列,例如:

然而,這意味著我必須在我的應用程序中硬編碼營養名稱(例如“鈉”)和單位(例如“mg”)。我更希望這也來自數據庫,我想這將是某種固定定義表,例如:

我想看看是否有更好的方法來引用定義,而不是在foods表中創建更多列,例如:

所以我天真地實現了以下內容:

數據庫圖

但是我注意到表格中有很多重複,food_nutrients即每種食物的營養值大約有 30 行,我想知道 a)這是否是食品數量不斷增加的數據庫中的一個問題,以及 b)是否有更合適的模型有更多經驗的人可以建議嗎?

你的food_nutrients桌子設計是完美的,不要改變它。

當然會有重複,因為許多食譜需要一湯匙鹽。這是您的數據中固有的重複,沒有什麼壞處——畢竟,您正在建模一個重複的現實。我相信任何擺脫重複的嘗試都會使數據模型複雜化和惡化。

引用自:https://dba.stackexchange.com/questions/300940