例如,我有两张桌子
A
create table teachers(
id number(4) primary key,
name varchar(20)
);
乙
create table students(
id number(4) primary key,
name varchar(20)
);
和第三个表
AB
create table Teacher_Student(
T_Id number(4),
S_Id number(4)
);
和他们的关系
alter table teacher_student
add constraint s_t_pk Primary key(T_Id, S_Id);
这种关系是否正确创建?如果我想添加新学生或老师,那么插入查询会是什么。
答案 0 :(得分:2)
建议:还要添加参照完整性约束:
alter table teacher_student
add constraint s_t_fk_t foreign key (T_Id)
references teachers (id)
on delete cascade
on update cascade;
alter table teacher_student
add constraint s_t_fk_s foreign key (S_Id)
references students (id)
on delete cascade
on update cascade;
答案 1 :(得分:1)
通常情况下,这需要学生和教师表的主键,然后T_Id和S_id的外键给Teacher_Student的教师和学生。
当你这样做时,插入学生和老师,只会检查他们的密钥的唯一性,即你不能有两个id为1的学生。
插入Teacher_Student会检查关系的唯一性,并且插入的ID存在于各自的表中。
PS缩写数据库对象名称是一个非常令人反感的习惯。