如何删除 mysql 数据库中的数组?

How to get rid of arrays in mysql database?

餐厅擅长复杂的晚餐。收集食谱(每个食谱都收集产品的价格)。每个产品都有可变价格。

这是最好的设计吗?

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

我只是不确定 UsingProducts..

设计看起来还不错。

如 zerkms 所述,您缺少单位。这不一定是个问题,因为您的产品可以是“100 克面粉”,所以单位是隐含的。但是,打印食谱时,您会打印“5 x 100 g flour”而不是“500 g flour”。它还会打印“10 x 100 g flour”而不是“1 kilo flour”。

想想这对你来说是否是个问题,你是否需要单位换算,比如 1000 克 = 1 公斤。

还有一点就是你的类别。所以一个食谱只能属于一个类别。因此,您不会遇到 "vegetarian" 和 "soups" 之类的问题,将素食汤放在哪里的问题,而是使用不同的类别。好的。但是,您不想为他们设置 table,以便能够轻松地 select 他们吗?如果你想保持这种设计,你至少应该让它们成为一个枚举列(MySQL 中的一些特殊内容),这样你就不会错误地将食谱放在 "soups" 中,而其他人则放在 "suops" 中。

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