需要帮助为批发在线T恤商店创建数据库架构

时间:2010-03-20 13:05:55

标签: database-design database-schema

我目前正在批发在线T恤店。我这样做是为了固定的数量和价格,它的工作正常。现在我需要为可变数量和价格做到这一点。

我正在尝试将此设计基于此reference site

我创建的基本表是:

CREATE TABLE attribute (
  attribute_id int(11) NOT NULL auto_increment,
  name varchar(100) NOT NULL,
  PRIMARY KEY  (attribute_id)
); 

CREATE TABLE attribute_value (
  attribute_value_id int(11) NOT NULL auto_increment,
  attribute_id int(11) NOT NULL,
  value varchar(100) NOT NULL,
  PRIMARY KEY  (attribute_value_id),
  KEY idx_attribute_value_attribute_id (attribute_id)
);

CREATE TABLE  product (
  product_id int(11) NOT NULL auto_increment,
  name varchar(100) NOT NULL,
  description varchar(1000) NOT NULL,
  price decimal(10,2) NOT NULL,
  image varchar(150) default NULL,
  thumbnail varchar(150) default NULL,
  PRIMARY KEY  (product_id),
  FULLTEXT KEY idx_ft_product_name_description (name,description)
);

CREATE TABLE product_attribute (
  product_id int(11) NOT NULL,
  attribute_value_id int(11) NOT NULL,
  PRIMARY KEY  (product_id,attribute_value_id)
);

我没有得到,如何根据可变数量存储价格。 例如 -

Quantity    Price
1-9         £1.91
10-99       £1.64
100-499     £1.10
500+        £1.14

请帮我创建产品及其相关表格。我的要求与上述参考链接相同。

3 个答案:

答案 0 :(得分:2)

获取数据模型资源手册的第1卷,第1卷,并查找设计良好的数据模式。根据需要(它们很强大)。商店的定价并不简单 - 严肃。

答案 1 :(得分:0)

只需创建一个与网站上显示的定价矩阵相匹配的表格。

  CREATE TABLE product_qty_prices (
     id         INTEGER NOT NULL PRIMARY KEY,
     product_id INTEGER NOT NULL REFERENCES product,
     low_qty    INTEGER NOT NULL
     high_qty   INTEGER NOT NULL
     price      DECIMAL(10,2) NOT NULL )

您也可以选择省略high_qty列并通过查看下一行中的low_qty在您的应用程序中派生它,但我通常发现使用此设计可能会出现重叠或不正确范围的风险。

答案 2 :(得分:0)

你的设计有点混乱。您想要通用的实体 - 属性 - 值数据模型还是特定于域的模型?直接建模您的特定域比尝试纠缠抽象的EAV实现更容易。

如果你想看一个示例实现,Barry Williams的免费数据模型库有一个很好的电子商务示例。 Find out more