2011-12-18 98 views
0

对于exmple我有两个表如何在多对多关系表中插入记录?

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

任何机构可以帮助我吗? – 2011-12-18 18:46:02

回答

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

为此,通常需要主键用于学生和教师表,然后将外键用于T_Id和S_id给Teacher_Student的教师和学生。

当你这样做,将学生和老师,只检查其密钥的唯一性,也就是说,你不能有两个学生用1

插入到Teacher_Student会检查唯一性的ID的关系,并且插入的id存在于它们各自的表中。

PS缩写数据库对象名是一个令人反感的习惯。

+0

为了清晰起见简化数据库对象名是一种非常常见的技术。您当然熟悉着名的[零件和供应商数据库](http://www.dbdebunk.com/page/page/772076.htm)? – onedaywhen 2011-12-19 08:56:44

+0

该死的学者。如果没有十年的经验,不应该被允许教授Hello World。 – 2011-12-19 15:52:07

相关问题