MySQL - 如何在单个列中添加多个值
本文关键字:添加 单个列 MySQL | 更新日期: 2023-09-27 18:34:44
我有两个表(科目和教师表(。如何将科目链接到教师,其中教师可以有多个科目。同样对于主题,一个主题可以是一周内的多天。如何在 c# 中做到这一点?请帮忙。
通常的解决方案是创建一个中间表或"交集实体"。
您正在尝试在科目和教师之间创建多对多关系,因为每个教师可以教授多个科目,多个教师可以教授同一科目。为了解决这个问题,你创建了一个交集表,为了论证,我们可以称之为Teaches
。您的架构将如下所示:
CREATE TABLE teachers
(
id CHAR(10) PRIMARY KEY,
name VARCHAR(255)
-- more fields
);
CREATE TABLE subjects
(
id CHAR(10) PRIMARY KEY,
name VARCHAR(63)
-- more fields
);
CREATE TABLE teaches
(
teacher_id CHAR(10) FOREIGN KEY REFERENCES teachers (id),
subject_id CHAR(10) FOREIGN KEY REFERENCES subjects (id),
PRIMARY KEY (teacher_id, subject_id)
);
这会将您的多对多关系转换为一对多关系。
您的第二个问题,即每个科目每周多节课的问题,最容易用一个子classes
表来处理,每个班级满足一个记录。在这两种情况下,你想要研究的主题都是"规范化"。