-1

我目前正在网上批发 T 恤店。我已经以固定的数量和价格完成了此操作,并且工作正常。现在我需要为可变数量和价格执行此操作。

我正在尝试将我的设计基于此参考站点

我创建的基本表是:

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)
);

我不明白如何根据可变数量存储价格。例如 -

数量 价格
1-9 英镑 1.91
10-99 英镑 1.64
100-499 英镑 1.10
500+ £1.14

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

4

3 回答 3

2

获取数据模型资源手册第 1 - 3 卷的副本,并查找设计良好的数据模式。只需根据需要(它们很强大)。商店的定价并不是那么简单——说真的。

于 2010-03-20T13:18:41.510 回答
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 在您的应用程序中推导出该列,但我通常认为这种设计值得冒重叠或不正确范围的风险。

于 2010-03-20T13:18:52.603 回答
0

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

如果您想查看示例实现,Barry Williams 的自由数据模型库有一个很好的电子商务示例。 了解更多

于 2010-03-20T13:27:39.540 回答