【发布时间】:2014-06-15 05:14:01
【问题描述】:
以下表格之间存在多对多关系:
create table instructors
(i_id int not null identity(1,1) primary key,
i_name varchar(50), etc...)
create table members
(
m_id int not null identity(1,1) primary key,
m_name varchar(50, etc...))
create table schedule
(sch_id int not null identity(1,1) primary key,
sch_session varchar(10))<BR>
-- session is(morning, afternoon, evening)<br>
下面是我的连接表
create table Ins_Mem_Sch
(ins_mem_sch_id int not null identity(1,1) primary key,
i_id int not null foreign key references instructors(i_id),
m_id int not null foreign key references members(m_id),
sch_id int not null foreign key references schedules(sch_id)
)
我想知道到目前为止我所做的是否正确,其次我尝试通过查询加入它们,但我做不到,可能是因为我没有练习多对多关系的加入,我不是一个完美的程序员,所以我想要一个连接查询来从所有表中获取数据。
感谢您的帮助。
问候,
【问题讨论】:
-
是的,表格看起来不错,只有一件事只是从 Ins_Mem_Sch 中删除了不需要的主键,以及您要显示什么样的数据?
-
感谢您的评论,所以您的意思是我完全删除了 ins_mem_sch_id 列?,我想显示 * 成员、讲师和他们的日程安排
-
@AbhikChakraborty PRIMARY KEY 是绝对需要的,而不是 ins_mem_sch_id 列!
-
除非您的应用程序对
Ins_Mem_Sch进行了删除操作,否则不需要它,在这种情况下您可以保留ins_mem_sch_id,因为在主键上删除更快。但如果它不存在,那么只需将其删除。 -
@Strawberry 是的,列绝对需要PK,我在表中给出了
Ins_Mem_Sch应该保留ins_mem_sch_id或不保留ins_mem_sch_id的原因
标签: mysql sql sql-server database join