如何为这个特定的数据信息正确设计SQL表?

时间:2014-08-05 12:07:36

标签: mysql relational-database

我正在试图弄清楚如何正确设计一个包含以下信息的SQL表:组ID(唯一整数),组名和每个组的成员(即表示组成员名称的字符串)。
例如,您可能有一个组“家庭”,其组ID为1121,其中包含Jay,Aviva,Mat和Dana,另一个可能的组可能是“最好的朋友”,组ID为1123且有Mat,迪兰和杰克在里面。) 所以,起初我想过有一个带有scheme的表(Group_ID,Group_Name,Members),但是我没有组中成员数量的上限,而且总的来说感觉就像一个坏主意。登记/> 有没有人知道如何在关系数据库中保存这些信息?
或者我可以考虑将此信息保存在XML文件中吗?

1 个答案:

答案 0 :(得分:1)

最好的方法是拥有3张桌子

groups table
------------
id  |   name
------------
1   |  family
2   |  friends


users table
-----------
id  |  name
-----------
1   |  peter
2   |  tom


members table
--------------------
group_id  |  user_id
--------------------
1         |  1
1         |  2 
2         |  2 

如果您希望获得该组织的所有成员"家庭"你可以运行查询

select u.name
from users u
join members m on m.user_id = u.id
join groups g on m.group_id = g.id
where g.name = 'family'