【发布时间】:2021-10-03 11:28:28
【问题描述】:
这更像是一个后端设计问题。我将使用以下 3 个表格来填充 Web 应用程序中的下拉菜单。
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"
}
【问题讨论】:
-
这只有在其他表的列可以是任何类型的外键时才有用。您无法指定一列只能包含公民身份 ID。
-
坚持现有的,并将名称设置为 UNIQUE。
标签: mysql database-design