【发布时间】:2019-07-20 12:09:30
【问题描述】:
我是 PostgreSql 的新手,我正在开发一个示例数据库以供学习。我有一个面包店数据库和一个食谱表和一个配料表。我试图了解连接这两个表的模式,以便食谱表有一个引用成分表的成分列表,但我不确定我是否需要第三张表,或者我是否可以只使用这两个表.
CREATE TABLE ingredients
(
ing_id SERIAL PRIMARY KEY,
name varchar(255) NOT NULL,
quantity integer NOT NULL
);
CREATE TABLE recipes
(
rec_id SERIAL PRIMARY KEY,
name varchar(120) NOT NULL,
list_of_ingredients text NOT NULL,
);
编辑: 所以假设我在成分表中有这个:
(1, flour, 40)
(2, eggs, 12)
(3, sugar, 23)
在食谱表中:
(1, cake, "3 flour, 4 eggs, 2 sugar")
我对如何链接这两个表有点困惑。
list_of_ingredients 需要引用成分表作为外键。我知道 NoSQL DB 的全部意义在于允许列表,所以我不确定我是否完全错误地处理了这个问题。
我还将编写一个 Make_Recipe 函数,该函数将接收一个食谱并确保有足够的成分,然后如果它通过上述条件,将继续并减少成分数量。
我已经阅读了这些帖子,但它们并不完全符合要求: Database design for storing food recipes Database Schema for Recipe/Ingredient/Measurement/Amount
感谢您的宝贵时间!非常感谢任何帮助。
【问题讨论】:
-
您所说的“...他们不太符合要求”是什么意思?我认为这是一个非常好的答案。
标签: sql postgresql