鸡尾酒食谱的数据库结构

时间:2017-01-22 21:59:32

标签: mysql sql database mysqli database-design

首先让我说我是SQL和MySQL的完全入门者,所以决定投资这个宠物项目来开发我的数据库知识。

目标:建立一个非常简单的网站来访问鸡尾酒配方数据库。它有 id,名称,玻璃,成分,方法,冰,装饰,评论的字段。

如果所有的字段都是线性的,那么对我来说会很简单,但是成分列正在破解我的头脑。

这是一个食谱的例子: This is an example of a recipe:

有些食谱可能含有3种成分,有些可能含有5种,有些含有10种,有时还有不同的方法来测量这些成分(ml,破折号,茶匙,......)。

我的第一个问题是建立像这样的数据库最简单的方法是什么?我将如何实现?

  • 在同一列中用逗号分隔所有成分
  • 为每个食谱创建一个额外的表(可以超过200个食谱)
  • 创建一个包含库存中所有原料的表格,然后以某种方式将它们连接到配方表(多对多?)
  • 其他完全

拥有一张包含所有成分的表将有助于未来的库存记录开发。

由于我正在从一个漂亮的,准备打印的Excel表格升级到sql数据库,我的第二个问题是将所有食谱移动到的最简单/最快的方法是什么?数据库?再次,我将面临成分部分的问题。 我是否应该尝试导出和导入或者只是手动输入并输入所有食谱?

感谢您阅读以及有关该主题的任何评论:)

1 个答案:

答案 0 :(得分:2)

我建议您研究database normalisation.本质上,这是将数据分解为特定组然后形成包含该数据的新表的过程。

要做的一些原因是:a)良好的结构可以使查找,维护,缩放等更容易.b)您希望尽可能少地重复数据。如果您的数据库有一百万条记录,那么您希望尽可能高效。

表1: ID(PK),名称,方法,冰,装饰,评论

1 柯林斯鸡尾酒 摇动所有成分...... 立方 柠檬片 对于接骨木花......

表2: ID(PK),T1_ID(外键),成分,数量,度量

第1行 -

1:1:Beefeater杜松子酒:2:tsp

第2行 -

2:1:Lemom Juice:1:tsp

第3行 -

3:1:糖浆:1:tsp

第4行 -

4:1:苏打75:ml