我希望创建一个DVD数据库(MySQL),其中包含自定义字段,这意味着用户应该能够添加自己的信息字段以编目他的DVD。我只提供所需的属性,例如:
- ID
- Title
用户可以添加自己使用的字段,例如:
- Actors
- Year
- Genre
- Plot
- etc
现在,对于这个问题有什么最佳实践呢?我有一些想法:
- 更改表并添加属性(可能会丢失数据)
- 使用临时表(性能较差)
还有更好的建议吗?
我希望创建一个DVD数据库(MySQL),其中包含自定义字段,这意味着用户应该能够添加自己的信息字段以编目他的DVD。我只提供所需的属性,例如:
- ID
- Title
- Actors
- Year
- Genre
- Plot
- etc
现在,对于这个问题有什么最佳实践呢?我有一些想法:
还有更好的建议吗?
我建议使用另一个表格来存储 dvd_id、field_name 和 value,以存储所有自定义字段。这样可以避免每次添加或删除新字段时都要修改表格。
你应该尝试使用MySQL 5.7及其JSON数据类型。
你可以使用它来定义半结构化的用户自定义属性集合。
CREATE TABLE Dvd (
id SERIAL PRIMARY KEY,
title text NOT NULL,
attr JSON NOT NULL
);
INSERT INTO Dvd
SET title = 'Wonder Woman',
attr = '{"Actors": ["Gal Godot", "Chris Pine"],
"Year": "2017",
"Genre": "Action",
"Plot": "See Captain America: The First Avenger"
}';