例如,如果我的表格中包含某种类型的'项目'无论是产品,动物,还有什么,我还需要存储随时间增长的属性。什么是建模的最佳方式?
一种方法是:
CREATE TABLE item
(
item_id int,
name varchar(255),
description varchar(255),
);
CREATE TABLE item_attr
(
item_attr_id int,
item_id int,
name varchar(255),
description varchar(255),
value varchar(255)
)
现在,如果我将一个项目添加到items表中,并且此项目获得100个不同的属性,包括名称,描述,任何可能的值(数字,文本等),那么我将只有100行用于该项目item_attr表。这是最好的方法吗?
答案 0 :(得分:1)
这取决于属性是否在项目之间共享。在这种情况下,您将在单独的表中创建它们并在它们之间创建链接
CREATE TABLE item
(
item_id int,
name varchar(255),
description varchar(255),
);
CREATE TABLE attr
(
attr_id int,
name varchar(255),
description varchar(255),
)
CREATE TABLE item_attr
(
item_attr_id int,
item_id int,
attr_id int,
value varchar(255)
)