gpt4 book ai didi

php - 披萨数据库优化

转载 作者:行者123 更新时间:2023-11-30 23:07:07 25 4
gpt4 key购买 nike

这是我的第一个问题,但我已经有一段时间了。

我想创建一个 OO/MVC 网络应用程序(php、mysql、codeigniter 中的披萨店),其中披萨对象是完全可定制的。每一 block 披萨都设计成可变的,我不确定数据方案是否优化,所以我寻求一些建议。

每个披萨由以下部分组成:
一个Crust对象:它可以是薄的、厚的、泛的、有颗粒的等。
边缘对象:它可以是薄的、厚的、填充的(可以用一种成分填充)等。
PizzaSize 对象:小、中、大等。
一个 PizzaLayout 对象:1 种口味、2 种口味(对半)、2 种口味(2/3-1/3)等
Observations 字符串:任何用户额外选项,如“生肉”、“烤洋葱”等。
1 到 4 种 flavor : flavor 1、 flavor 2、 flavor 3 和 flavor 4。(只有 flavor 1 不可为空)

PizzaLayout 对象使用定义比萨分区的属性,例如:
“1” = 只有一种口味
“4:4” = 2 种口味,每种 4 片
“3:3:3” = 3 种口味,每种 3 片(这是 8 片的唯一异常(exception))
“6:2” = 2 种口味,一种有 6 片,另一种有 2 片。

例如,如果披萨的布局为 6:2,Flavor1 是培根,Flavor2 是马苏里拉奶酪,那么它将有 6 片培根和 2 片马苏里拉奶酪。

每种口味均由成分列表组成(例如:“意大利辣香肠:奶酪、意大利辣香肠、牛至、西红柿等”) .用户可以通过单独更改配料(例如,将培根添加到意大利辣香肠口味中)或从头开始创建自己的口味来改变披萨口味。

披萨店将预先配​​置:

可用 Crust 表。
可用成分表。
可用布局表。
可用边缘表。
可用口味表。
可用尺寸表。

我愿意创建一个更灵活的设计,最多可以添加 8 种不同的口味,但我对 Pizza table 上的固定属性不满意。我想创建一个 PizzaLayoutItem,删除 4 种口味的列。每个项目都有一种口味和切片数量。每个披萨都会有一个项目列表,所以我会创建一个表:PizzaLayoutItem: id, pizzaId, flavorId, slices,

因此用户定义的火腿/培根披萨将具有:“4:4”布局。2个LayoutItems,一个:火腿4片。还有一个:培根 4 片。

我的意思是,我必须创建所有这些表吗?每次用户制作披萨时,数据库会查询 6 或 7 个表?我们可以认为表的大小是无关紧要的,因为比萨店的外皮、口味等的数量不会很大,所以这是一个快速的查询,但是,还有更好的设计方法吗?

不能发图片,所以不能发自己设计的方案=/。
对不起,如果这个问题的布局也没有优化。

最佳答案

您可以为表使用邻接表模型。它很简单,但也适用于复杂的数据库方案,如家谱。然后我会为大部分逻辑使用装饰器模式。

关于php - 披萨数据库优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com