【发布时间】:2012-09-01 02:05:08
【问题描述】:
我正在寻找有关如何为拍卖方设置我的数据库的指南。
我的问题是,有很多不同的产品类型——比如绘画、衣服、电脑等。它们有不同的规格,应该可以在拍卖中只设置 L 尺寸的产品 A——或者整个产品 B 的库存,例如
在这种情况下,我应该如何构建我的数据库以获得最佳性能和编码?
【问题讨论】:
标签: mysql e-commerce webshop
我正在寻找有关如何为拍卖方设置我的数据库的指南。
我的问题是,有很多不同的产品类型——比如绘画、衣服、电脑等。它们有不同的规格,应该可以在拍卖中只设置 L 尺寸的产品 A——或者整个产品 B 的库存,例如
在这种情况下,我应该如何构建我的数据库以获得最佳性能和编码?
【问题讨论】:
标签: mysql e-commerce webshop
我会建议以下数据库/对象结构:
[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 字段)。如果数据库结构解释不正确,请告诉我。
【讨论】: