【发布时间】:2011-08-25 15:18:13
【问题描述】:
这对你这玩意儿有点小挑战。
我正在使用我们销售到基于 Web 的报价应用程序的产品数据库。每个产品都有以下属性:
- 唯一标识
- SKU
- 说明
- 价格
- 零件
为了让您大致了解,我们制造日光浴室,并且拥有大约 800 种通用型号。显然,根据客户和他的房子,通用模型可能不适合,需要使用“选项”进行修改,例如在侧面添加门、更改颜色等等。
目前在我们的报价系统中,我们不担心客户为他的阳光房选择了什么选项(新颜色、额外门等),我们只担心通用型号名称(例如:SUN -0810 8 x 10 日光浴室),然后为其定价。
我的最终目标是能够根据客户选择的型号和选项生成报价单(物料清单或零件清单)。我们已经将所有零件存储在数据库中,需要将它们链接到模型。
现在我的问题是:我们有大约 800 种不同的型号,每种型号都有多种选择。例如,标准日光室由左墙、中墙和右墙组成。一堵墙可以有 3 种不同的颜色,可以没有门或 1 个门(可能更多取决于日光室的大小)。一个中心也可以有 3 种不同的颜色和 11 种不同的长度。
以下是通用模型的一种组合示例:
SUN-0810(8 英尺乘 10 英尺日光浴室)
- 左墙:8 英尺长的木炭,带门
- 右墙:8 英尺长的木炭,没有门
- 中心:10 英尺长的木炭
因此,此特定组合的新型号名称(产品 SKU)类似于:
SUN-0810CH-L1-R0.
最后,仅对于 8 x 10 日光浴室 (SUN-0810),我会得到这样的结果:
- SUN-0810CH-L0-R0(8 x 10,颜色 = 炭灰色,左墙 = 无门,右墙 = 无门)
- SUN-0810CH-L1-R0(8 x 10,颜色 = 炭灰色,左墙 = 有门,右墙 = 无门)
- SUN-0810CH-L0-R1(8 x 10,颜色 = 炭灰色,左墙 = 无门,右墙 = 有门)
- SUN-0810CH-L1-R1(8 x 10,颜色 = 炭灰色,左墙 = 带门,右墙 = 带门)
- SUN-0810SM-L0-R0(8 x 10,颜色 = 烟雾,左墙 = 无门,右墙 = 无门)
- SUN-0810SM-L1-R0(8 x 10,颜色 = 烟雾,左墙 = 有门,右墙 = 无门)
- SUN-0810SM-L0-R1(8 x 10,颜色 = 烟雾,左墙 = 无门,右墙 = 有门)
- SUN-0810SM-L1-R1(8 x 10,颜色 = 烟雾,左墙 = 带门,右墙 = 带门)
为了节省您的详细信息,我们有大约 800 种通用型号,例如 SUN-0810。我做了一些数学计算并意识到,如果我要存储产品选项的所有可能组合,它将产生超过 50 000 种不同的产品。
假设所有 50 000 种不同的产品都存储在数据库中,我需要为每个产品定义它们的部分。正如我上面所说,零件已经存储在数据库中。以下是几个例子:
零件 SKU | 说明
ENT28 28 英寸十字螺柱
SCREW6-ZW 6毫米锌白螺丝
ATT90ALU 90度铝领带
最终的结果是这样的:
SUN-0810CH-L1-R0 包含:
- ENT28 x4
- 螺丝6-ZW x19
- ....
- ....
我意识到主要问题是大多数模型每个都包含超过 50 多个部分,定义所有 50 000 个不同模型的组成需要很长时间。
因此,我正在寻求有关如何解决此问题或我的方法是否可行的一些帮助或想法。
感谢您的宝贵时间。
【问题讨论】:
标签: database database-design product inventory-management