MySQL - 如何在单个列中添加多个值

MySQL - How to add multiple values in a single column

我有两个表(科目表和教师表)。我怎样才能link把科目交给老师,这里一个老师可以有多个科目。同样对于主题,一个主题可以是一周中的多天。我怎样才能在 c# 中做到这一点?请帮忙

通常的解决方案是创建一个中间 table 或 "intersection entity."

您正在尝试在学科和教师之间建立 many-to-many 关系,因为每个教师可以教授多个学科,而多个教师可以教授同一学科。为了解决这个问题,您创建了一个交集 table,为了便于讨论,我们可以将其称为 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)
);

这会将您的 many-to-many 关系转变为一对 one-to-many 关系。

你的第二个问题,每个科目每周有多个 classes,最容易用一个 child table 的 classes 来处理记录每个时期 a class 满足。在这两种情况下,您要研究的主题都是"normalization."