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