我正在尝试为食品订购系统设计一个数据库。
示例披萨。
一个披萨可以有 0 个浇头或 10 个。
我使用带有创建关系的 ORM 的 PHP 框架编写此内容。
是不是更好
- 为项目创建 1 个表(披萨)
为每个浇头创建一个表格,然后将它们关联起来。
或
- 为披萨创建
- 1 个表并创建另一个表,其中包含所有配料作为列,每个订购的披萨都会创建一个新行,其中每列设置为 true 或 false,以使用外键将配料和披萨添加到披萨中以关联浇头和披萨?
谢谢
我认为最好的解决方案是1)为披萨创建一个表,例如:
id 1
name Capriciossa
2)第二为浇头,如:
id 1
topping tomato
3)第三个关系 甜菜 - 你可以有一个比萨饼有 0 或 10 个浇头,一个浇头可以与许多比萨饼相关
id_pizza 1
id_topping 1
这种关系应涵盖所有方案。
这取决于
您使用的数据库。你只描述相对的。那么基本上你需要 3 张表:
pizza (id, name, toppings_ids AS ingredients),
toppings (id, name),
orders (id, pizza_id, topping_ids AS additional_toppings)
假设您的框架知道如何存储和搜索多个 id
PS当然,每个表中需要更多列,例如日期或价格,这种类似sql的模式仅表示比萨饼字段所需的