数据库建表问题:两张多对多的表该怎么建!

比如说一个老师有多个学生,一个学生也有多个老师,老师和学生这两张表该怎么相互关联!... 比如说一个老师有多个学生,一个学生也有多个老师,老师和学生这两张表该怎么相互关联! 展开
 我来答
匿名用户
2013-04-25
展开全部

多对多  的情况下,  需要一个中间关联表


例如下图:   

一个用户,可以有多个角色, 

一个角色下面, 有多个用户。


追问
可以直接给我SQL语句吗!就以学生和老师为例。学生和老师只有id和名字!
追答
CREATE  TABLE    老师   (  id   int   primary  key,    名字   varchar(20) );
CREATE TABLE 学生 ( id int primary key, 名字 varchar(20) );

CREATE TABLE 师生关系 ( 老师id int , 学生id int );

查询 张老师 教的学生

SELECT
学生.*
FROM
学生 , 师生关系, 老师
WHERE
学生.id = 师生关系.学生id
AND 老师.id = 师生关系.老师id
AND 老师. 名字 = '张老师'
zhouxyx
2013-04-27 · TA获得超过192个赞
知道小有建树答主
回答量:150
采纳率:80%
帮助的人:72万
展开全部
多对多需要用中间表来表示。
------------------------------------------------------------------------------------
student(student_id,user_name....)
teacher(teacher_id,teacher_name)
student_teacher(student_teacher_id,student_id,teacher_id)
和上面给图的哥们一样
-----------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and s.studnet_id = 1;//表示学生1对应的老师。
------------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and t.teacher_id = 1;//表示老师1对应的学生。
--------------------------------------------------------------------------------------
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HelloWorldLJ
2013-04-25
知道答主
回答量:1
采纳率:0%
帮助的人:1510
展开全部
多建一个关联表,关联表里面,只需存老师的id,对应上学生的id即可
追问
可以直接给我SQL语句吗!就以学生和老师为例。学生和老师只有id和名字!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木棉树说事5627
2013-04-25 · TA获得超过183个赞
知道答主
回答量:150
采纳率:0%
帮助的人:170万
展开全部
其实很简单,建立两个表比如学生表有: IdStu(学生ID),。。。。(学生信息)
老师表: IdStu(老师Id),。。。。。(老师信息),idStus(学生表中的学生IDS)

这是最简单的,但是对数据库压力很大,还有比较难的,你要是还想知道跟多的话,可以联系我
追问
恩     想知道  想知道  说说嘛!
追答
一对一张表的关系和一对多张表的关系,很复杂的,慢慢你会明白
一张表对一张表性能消耗大,但是理解简单,如果是多张表对多张表,你的数据库还要用到二维数组,很麻烦,不是说说就能清楚的。 多看书吧,以后工作你就明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式