使用 boolean 还是 varchar 更好

问题描述 投票:0回答:1

我有一张表 EDUCATION_TRAINING ( SchoolID INT NOT NULL 主键, 学校名称 VARCHAR(100) NOT NULL, 学校地址 VARCHAR (100) NOT NULL, SchoolCountry VARCHAR (100) NOT NULL, 研究领域 VARCHAR (100) );

但我需要附加教育类型。所以我创建了另一个表 EDUCATIONTYPE (SchoolID int NOT NULL PRIMARY KEY,本科生培训,硕士,博士,实习生,住院医师,研究员)

但我不确定设置这张桌子的最佳方法。我需要选择一个属性,所以我正在考虑布尔值,但这可能会导致冗余。因此,我正在考虑从 EDUCATION 中删除 AreaofStudy 并在 EDUCATIONTYPE 中使用 varchar (100),这样我们就可以只输入研究领域并创建一个连接表。最好的方法是什么?

布尔值会导致冗余

sql boolean varchar
1个回答
0
投票

那么本质上您是在寻找多对多关系?处理这个问题的常见方法是包括;正如您提到的,一个链接表。

SchoolID int not null
AreaOfStudyId int not null
RowId int not null

该表位于 Education_Training 表和 AreaOfStudy 表之间,并在两个表之间创建链接,允许您拥有多个学习领域,指向许多 SchoolId 行。

在某些情况下,行 ID 对于工具运行 CRUD 操作是必需的,在某些情况下则不是,您可以根据需要包含或省略它。让 SQL 工作并不严格要求。

© www.soinside.com 2019 - 2024. All rights reserved.