老师,学生互相之间的好友关系如何建表

现在有两个表,一个老师表,一个学生表,现在要加个好友聊天功能,学生与学生,学生与老师,老师与学生,老师与老师之间,都可以互相之间成为好友。这样的话,怎么样建表才能最大限度减少冗余度

1.建议把老师表和学生表合并成一个表,如果合并成表不现实,就用视图来合并,合并后为三列(或更多列):ID列,姓名列,身份列(标示是老师还是学生)。

2.然后新建好友关系表,主要两列:ID列,好友ID列。
ID列对应合并表(视图)的ID列,好友ID列对应好友在合并表(视图)的ID列。

这是最简便,数据查询速度最快的方式。
我想你的意思可能是想把一个人的所有好友都保存到一列数据中,以减少保存空间。但是提示你一下,在结构设计没有大问题的情况下,数据库中的空间和速度一般是成正比的,数据结构划分的越细致,所占空间越大,查询速度也越快。
当然,如果你觉得数据量不会很大,一定要都保存到一列也不是不可以,但是需要你编写专门的存储过程,或者在程序/页面编程来实现。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-21
create table relationship

id int ,
r_id_1 int --联系人,
r_id_2 int --联系人,
type char(1) --联系人类型(1 学生与学生 2 学生与老师 3 老师与学生 4老师与老师)
第2个回答  2009-07-21
加第三张表。三个字段
主键,第一好友ID,第二好友ID 即可表达。
前提是老师ID和学生ID不会重复。
第3个回答  2009-07-21
自己建吧
第4个回答  2009-07-21
可以分开