设计一个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。
我是编程新手,也是数据库新手。我的问题是我需要创建一个 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。