如何摆脱mysql数据库中的数组?

时间:2015-01-12 01:10:56

标签: mysql database database-design

餐厅专门提供复杂的晚餐。收集食谱(每个都收集产品的费率)。每件产品都有不变的价格。

这是最好的设计吗?

Recipe(r_id, r_title, r_category, r_price)
Product(p_id, p_title, p_price)
UsingProducts(r_id, p_id, amount)

我只是不确定UsingProducts ..

1 个答案:

答案 0 :(得分:0)

设计看起来很不错。

正如zerkms所说,你缺乏单位。这并不是一个问题,因为你的产品可以是100克面粉"所以单位是隐含的。但是,在打印配方时,您需要打印" 5 x 100 g面粉"而不是" 500克面粉"。它还可以印刷10×100克面粉"而不是" 1公斤面粉"。

想想这对你来说是否是个问题,以及你是否需要1000克= 1公斤的单位转换。

另一点是你的类别。因此配方只能属于一个类别。所以你不会喜欢"素食主义者"和"汤"问题在哪里放置素食汤,但使用不同的类别。好的。但是,您不想要一张桌子,以便能够轻松选择它们吗?如果你想继续使用这个设计,你至少应该让它们成为一个枚举列(MySQL中的一些特殊内容),所以你不要错误地把它们放在"汤和#34;和其他人在" suops"。

最后:什么是r_price?不应该是所有子价格(产品价格x金额)的总和吗?不要冗余地保存数据。不能这样做。否则可能会出现不一致(例如10 $ + 10 $ = 30 $)。从表格配方中删除r_price以获得规范化的数据库。