设计一个table结构

Design a table structure

我是编程新手,也是数据库新手。我的问题是我需要创建一个 table faculty

id(pk auto increment)  fact_name  department  subjects

现在我的问题是一个教员可以有超过 2 个或更多的部门或科目,对我来说它给出了重复主键 ID 的错误。

我要的是

id(pk auto increment)  fact_name  department  subjects 
          1               ABC        1           1
          1               ABC        2           2
          1               ABC        3           3

请建议如何设计我的 table,我可以在其中为相同的主键插入不同的数据,或者还有其他方法。

代码

Create table faculty(
fact_id INT AUTO_INCREMENT,
fact_name varchar(20),
fact_email varchar(20) unique,
fact_password varchar(20),
year_id varchar(2),
sem_id varchar(2),
dept_id varchar(2),
subject_id varchar(2),
primary key ( fact_id,subject_id)
)

主键是一个唯一的标识键,无论如何都不能重复,如果你想要另一个重复的键然后添加你自己的额外字段

---------------------------------------------------
| pk | my key | fact_name | department | subjects |
---------------------------------------------------
|  1 |    1   |    ABC    |     1      |     1    |
|  2 |    1   |    ABC    |     2      |     2    |
|  3 |    1   |    ABC    |     3      |     3    |
---------------------------------------------------


好的,根据我现在的理解,你需要学科、部门和院系之间的多对多关系,首先拆分院系table

-------------------------------
| pk | fact_name | fact_email | 
-------------------------------

然后创建一个不同的 table 例如名为 faculty_subjects

---------------------------------------------
| pk | fact_id | department_id | subject_id |
---------------------------------------------

任何额外的详细信息将在加入 table 中,而不是教员 table。