【发布时间】:2017-01-22 21:59:31
【问题描述】:
首先我要说我是 SQL 和 MySQL 的初学者,所以决定投资这个宠物项目来发展我的数据库知识。
目标:建立一个非常简单的网站来访问鸡尾酒配方数据库。它具有id、name、glass、成分、方法、ice、garnish、comment的字段。
如果所有字段都是线性的,但成分列让我头疼。
有些食谱可能有 3 种成分,有些可能有 5 种成分,有些可能有 10 种成分,有时使用不同的方法来测量这些成分(毫升、破折号、茶匙……)。
我的第一个问题是,构建这样一个数据库的最简单方法是什么?我将如何实现它?
- 在同一列中用逗号分隔所有成分
- 为每个食谱创建一个额外的表(可以超过 200 个食谱)
- 用库存中的所有可用原料创建一个表,然后以某种方式将它们连接到配方表(多对多?)
- 完全不同的东西
拥有一张包含所有成分的表格对于库存记录的未来发展会很有趣。
由于我要从漂亮的、可打印的 Excel 表格升级到 sql 数据库,我的第二个问题是,将所有食谱移动到数据库? 再次,我将面临成分部分的问题。 我是否应该尝试导出和导入,或者只是将其吸收并手动输入所有食谱?
感谢您阅读并对此主题发表任何评论:)
【问题讨论】:
-
这是我要做的:(1) 创建一个名为
ingredients的单独表。 (2) 用cocktail_id和ingredient_id的组合UNIQUE KEY创建一个新表cocktail_ingredients。如果您愿意,也可以在此处添加proportion列。 (3) 创建一个可以描述该方法的新表recipe。ingredients、cocktails和recipes之间描述的组合关系目前还不是很清楚,因此立即对此发表评论不是一个好主意。 “在同一列中用逗号分隔的成分”只会让生活变得困难 - 而是“规范化”。 -
一张食谱表,一张配料表,一张表,说明每种配料的份量属于每个食谱
-
谢谢!如果遇到问题,我会尝试并报告。
标签: mysql sql database database-design