我想知道在SQL数据库上管理额外字段的最佳方法是什么(在我的情况下是MySQL 5.7),例如我有带有字段的产品表
create table product(
id int auto_increment,
product_name varcha,r
description varchar,
other json,
primary key(id)
);
但是将来如果我想添加额外的字段,如weigth或height,我会将信息存储在其他字段中作为json格式。 做这个好主意吗?或者更好地为每个字段创建一个新列。何时是以json格式存储数据的好选择?
答案 0 :(得分:0)
嗯,这一切都取决于你的需求。
如果这些“额外”字段的结构将在行之间发生变化,那么使用lika json
编码文本可能是一个好主意,只要您不需要对它们执行SQL操作(如例如,WHERE
条件。)
无论如何(只要您的额外字段结构在行与行之间是可变的),我建议使用另一个表来存储所有额外的属性,例如:
CREATE TABLE extra_attributes(
id integer not null primary key,
product_id integer not null,
attribute_name varchar(64) not null,
attribute_value varchar(128)
);
然后创建一个products
表的外键。
如果您的所有产品都有相同的额外字段,最简单的解决方案是将所需的列添加到产品表中。