Pau*_*aul 3 amazon database-design e-commerce
我正在设计一个电子商务数据库......我想建议设计以下案例:
因此,我可以拥有尺寸为A,B,C和颜色的产品X:绿色,黑色和白色
每个组合都有它的价格......
它在亚马逊实现,这里有一个例子:http://www.amazon.com/Champion-Mens-Jersey-Black-Large/dp/B0010EEYCU/ref=sr_1_4?ie=UTF8&s=sporting-goods&qid=1287767784&sr =1 -4
我想帮助设计一下!
编辑:产品可以没有尺寸和颜色的价格
谢谢
在解决这个问题的众多方法中,我要强调一下:
Product为每个项目的每种颜色/尺寸组合单独记录.每个都有自己的价格.Size并Colour放入自己的桌子中可能是有意义的,并且PricePoint将它们拼接在一起的桌子 - 项目,颜色和尺寸的每个组合都有PricePoint适当的价格.请注意,第二种方法虽然更加规范化,但可能会导致产品/库存跟踪问题.由于如果每个价格点的每个项目都有自己的SKU(或其他常用标识符),则更容易跟踪单个项目,您可能更喜欢混合方法:
Product表格,其中包含项目,大小和颜色的每个组合的记录,每个组合具有唯一的SKU和价格.Size是标准化了常见的尺寸您的产品可能会有表.Product有这个表的外键.Colour桌子,如上所述.ProductType或ProductGrouping表.每个产品都有一个这个"父产品"表的外键.例如,您可能有一个ProductType ='T-Shirt',它有几十个与之相关的产品 - 每种衬衫样式,尺寸和颜色组合都有一个产品.更新:要详细说明"超集"表,根据OP的请求,我会以这种方式扩展@Phil Sandler的示例:
添加产品组表:
Product Group (defines a superset of similar products that will be grouped or filtered together)
product_group_id
product_group_name
Run Code Online (Sandbox Code Playgroud)
并编辑Product表以将外键添加到Product Group:
Product Table (defines the product):
product_id
product_group_id
product_name
Run Code Online (Sandbox Code Playgroud)
现在,要突出显示特定价格点的示例组合,一些补充数据:
商品名: product_id = 100,product_group_id = 1,product_name ='男士圆领T恤'
产品组: product_group_id = 1,product_group_name ='T-Shirts'
颜色: product_color_id = 10,product_id = 100,color_id = 6 假设'6'为'蓝色'.此记录表示Crew-neck T有蓝色可供选择
大小: product_size_id = 11,product_id = 100,size_id = 2 假设'2'是'中'.此记录表示Crew-neck T可在Medium中使用
价格: product_price_id = 555,product_id = 100,product_size_id = 11,product_color_id = 10,价格= 24.99*此记录表示中蓝色圆领T价格为24.99美元(注意price_id,菲尔的例子中没有)*
使用此示例,产品组表将允许您跨产品线进行查询,例如"选择我们销售的最昂贵的大型T恤".
很抱歉迟到的回复,但我刚刚遇到这个问题,并认为我会添加我的方法.首先,我要说的是,颜色/尺寸/款式是时尚界特有的.我曾经为一家开发库存管理软件的公司工作,他们不会碰它!
正如已经指出的那样,要走的是将库存单位与销售单位分开.这非常有效,但是您需要为单个产品手动输入每个单独的组合.这样,添加范围可能需要数周时间.
我的方法在后端更复杂,但允许更快地生成库存单位和无限选项.
所以:
首先,您需要一个表来保存您的选项(大小,颜色,样式等).这将只包含一个主键和一个您的选项的名称.
其次,您有另一个表格用于您的选项值(小,中,大,红,绿等).这包括您的主键,值的名称以及它所属的选项记录的ID.
因此,如果"选项"表中的记录1为"大小",则"小","中"等记录将与该记录相关联.
这样,您可以设置可在所有产品中选择的选项.
暂且不说:您可以通过创建'optionsGroup'表来使生活更加轻松 - 这将用于将两个表链接在一起.因此,如果你的T恤系列有红色,绿色,黑色和白色可供选择,你可以将这些选项分配给'T恤'组的'颜色'选项.然后你的跳线可能会有红色,蓝色,黄色,灰色,所以你将它们与"帽衫"组联系起来.这样,颜色选项值仍然与颜色选项相关联,但只有相关的选项值才会显示在管理系统的每个产品页面上.
最后,您有一个规范化表,将产品链接到选项值.每条记录都包含您的产品ID和选项值ID.如何选择这些取决于您,但我会在产品管理屏幕中显示所有可用选项及其值,作为复选框.选中的每一个都在规范化表中生成记录.
因此,对于T恤产品,您现在可以为产品的每个产品选项单独记录.
现在真正聪明一点:您编写一个查询每个可用选项的查询并返回它们的所有可能组合 - 将每个选项创建为单独的SKU记录!这些记录中的每一个都可以包含单独的价格修改器,图像,无论您喜欢什么 - 更重要的是,您可以简单地停用任何不适合您的组合.
这是一个非常复杂的解决方案,我以前从未试图解释它(我发现它很难做到这一点!!),但它比我以前见过或使用的任何解决方案都要好得多.产品只在很短的时间内生成,您可以拥有无限的选择.
| 归档时间: |
|
| 查看次数: |
4265 次 |
| 最近记录: |