【问题标题】:How to build database for variant management in a webshop如何在网上商店中为变体管理建立数据库
【发布时间】:2012-09-01 02:05:08
【问题描述】:

我正在寻找有关如何为拍卖方设置我的数据库的指南。

我的问题是,有很多不同的产品类型——比如绘画、衣服、电脑等。它们有不同的规格,应该可以在拍卖中只设置 L 尺寸的产品 A——或者整个产品 B 的库存,例如

在这种情况下,我应该如何构建我的数据库以获得最佳性能和编码?

【问题讨论】:

    标签: mysql e-commerce webshop


    【解决方案1】:

    我会建议以下数据库/对象结构:

    [Auction] n..1 [Category] 1..n [Variation Attribute] 1..n [Attribute Value]
    

    然后拍卖有一个类别和几个引用变体属性的属性值:

    [Auction] = [Category], [Name], [Description]
    [Auction_AttrVal] = [AuctionID], [VarAttrID], [AttrValID]
    

    首先,您可以拥有某种类别表,其中包含“绘画”、“衣服”、“计算机”等项目。拍卖/产品被分配到一个类别。

    然后每个类别定义此特定类别的变体属性。例如,“衣服”类别的“尺寸”或“计算机”类别的“CPU”。您还可以为变体属性添加预定义值,以限制变体的数量并避免“3GhZ”与“3 GhZ”之类的差异。

    此机制还允许轻松过滤搜索结果。您选择一个类别并简单地将所有变体属性加载为过滤器(或向属性添加一个标志以将其声明为这样)并将过滤值提供给最终用户。

    此外,您可以强制设置类别的变体属性,以强制创建拍卖的用户(我假设它是消费者对消费者)为他们的拍卖提供足够的信息。

    代码可能非常通用和简单。数据库结构具有高度的灵活性和可扩展性。性能比一张桌子好得多。您可能应该为Auction_AttrVal 表创建一个索引(为AuctionID 字段)。如果数据库结构解释不正确,请告诉我。

    【讨论】:

    • 我有一个问题,在“类别”下可能有两个,例如T 恤和牛仔裤应该有不同的尺寸。也许这可以通过儿童类别来解决,但是是否有可能使每个产品的差异化变量但仍然以某种方式“连接”到另一个以形成一个修剪和好的计算方式(你的“3GhZ”与“3 GhZ”正是我要避免的)
    • 可以制作父类。您将拍卖分配到最低类别级别(例如,如果您将“衣服”作为父类别,将“牛仔裤”作为子类别分配给“牛仔裤”,这意味着分配给“衣服”)。每个级别可以定义不同的变体属性。创建拍卖时,您只需向上移动层次结构并添加所有属性。这也将允许您通过为其赋予相同的名称来覆盖父级的属性,然后在层次结构中检查该属性是否已被提及。只需将 ParentCategoryID(可以为 null)添加到 Category 表。
    • 更具体地说明覆盖:假设衣服定义了一个尺寸(XXL、XL、L、M、S、XS)。然而,牛仔裤的尺寸为 32/32、34/32、...您为具有值 (XXL、XL、...) 的“衣服”和具有不同值 (32/32、...) 的牛仔裤定义变体属性“尺寸”。 ..)。当您为用户定义选项时,您首先找到“Jeans”的“Size”并将其添加为参数。然后,当您再次遇到“衣服”的“尺寸”时,您只需忽略它。
    • 是的,但这会给不同的价格带来一些限制。例如。 iPod 16 GB、32 GB 和 64 GB?我说的对吗?
    • 我知道应该是拍卖——但在拍卖中应该提到产品变化的“正常价格”——所以变化的价格应该能够改变..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2021-06-05
    • 2017-01-20
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多