我确信之前已经问过这个问题,但我对SQL这么新,我甚至无法将正确的搜索词组合起来找到答案!所以,如果这是重复,请道歉。
必须在运行时创建db I创建,然后在创建后输入数据。某些字段将具有不同数量的条目,但在创建时该数字未知。
我努力想出一个db设计来处理这种变化。
作为(匿名)示例,请参阅以下内容:
| salad_name | salad_type | salad_ingredients | salad_cost |
| apple | fruity | apple | cheap |
| unlikely | meaty | sausages, chorizo | expensive |
| normal | standard | leaves, cucumber, tomatoes | mid |
正如您所看到的," salad_ingredients"而变化。
我的想法是:
只需输入一个以逗号分隔的字符串,并在运行时分开。看似hacky,并且无法通过salad_ingredients进行搜索!
对于每种沙拉都有另一张桌子,例如" apple_ingredients",每种成分可能有不同的行数。但是,我无法做到这一点,因为我在创作时并不知道salad_name! :(
有一个单独的salad_ingredients表,其中每一行都是salad_name,并且有一个任意数量的成分字段,比如10,所以你最多可以有10种成分。再说一次,看起来有些笨拙,因为我不喜欢未使用的田地,如果出现超级复杂的沙拉会怎样?
有没有我错过的解决方案?
谢谢, 丹
答案 0 :(得分:2)
根据我的经验,最佳解决方案基于规范化的表格集
table salads
id
salad_name
salad_type
salad_cost
。
table ingredients
id
name
和
table salad_ingredients
id
id_salad
id_ingredients
其中id_salad是来自沙拉的相应if 和id_ingredients是相应的if from ingredients
使用正确的连接,您可以获取(选择)并过滤(在哪里)您需要的所有值