我目前正在批发在线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
请帮我创建产品及其相关表格。我的要求与上述参考链接相同。
答案 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