这更像是一个后端设计问题。我将使用以下 3 个表来填充网络应用中的下拉列表。
CREATE TABLE request_types(
id INT AUTO_INCREMENT PRIMARY KEY,
name as varchar(32) NOT NULL
);
CREATE TABLE citizenship_types(
id INT AUTO_INCREMENT PRIMARY KEY,
name as varchar(32) NOT NULL
);
CREATE TABLE designation_types(
id INT AUTO_INCREMENT PRIMARY KEY,
name as varchar(32) NOT NULL
);
所有 3 个表的设计都是相同的,所以我想知道将所有 3 个表的数据放在一个表中并使用另一个表来区分值属于哪个组,这样做是否是更好的做法
CREATE TABLE field_types(
id INT AUTO_INCREMENT PRIMARY KEY,
name as varchar(32) NOT NULL,
category TINYINT NOT NULL
)
CREATE TABLE category_types(
id INT AUTO_INCREMENT PRIMARY KEY,
name as varchar(32) NOT NULL
)
category_types 将像这样填充:
{
1:"request",
2:"citizenship",
3:"designation"
}
答案 0 :(得分:1)
这实际上没有标准化。您无法说出任何会导致您进行这种设计的数据库规范化规则。
规范化规则之一是属性列必须只依赖于表的键,而不是另一个属性列。在您的设计中,name
属性部分取决于非键列 category
。
我建议阅读SQL and Relational Theory之类的书。