我是编程新手,也是数据库的新手。我的问题是我需要创建一个表教员
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
请建议如何设计我的表格,我可以为同一主键插入不同的数据,或者有其他方式。
代码
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)
)
答案 0 :(得分:2)
主键是一个唯一的识别键,无论如何都不能复制,如果你想要另一个重复键,那么添加你自己的额外字段
---------------------------------------------------
| pk | my key | fact_name | department | subjects |
---------------------------------------------------
| 1 | 1 | ABC | 1 | 1 |
| 2 | 1 | ABC | 2 | 2 |
| 3 | 1 | ABC | 3 | 3 |
---------------------------------------------------
<小时/> 好的,根据我现在的理解,你需要在科目,系和院系之间建立多对多的关系,首先要分开教师表
-------------------------------
| pk | fact_name | fact_email |
-------------------------------
然后创建一个不同的表,例如名为faculty_subjects
---------------------------------------------
| pk | fact_id | department_id | subject_id |
---------------------------------------------
任何额外的细节都将在联接表中,而不是教师表。