[英]best way to store member of group in mysql table
我正在开发一个Android应用程序,人们将在其中注册并加入小组。 我有一个单独的MySQL表,该表存储用户的详细信息,另一个表存储组的详细信息。 但是我在将用户与组联系起来时遇到问题。
users表将具有其user_id
, name
, password
, email_id
, address
等group_id
表将具有group_id
, group_name
以及有关该组的其他详细信息。
我一定能得到
快速轻松地。
注意:假设您有10万个用户和1000个以上的组。
惯用的方式是拥有一个附加的n:m映射表,该表仅包含ID对-用户和他或她所属的组:
CREATE TABLE group_membership (
user_id INT NOT NULL,
group_id INT NOT NULL,
PRIMARY KEY (user_id, group_id),
CONSTRAINT FOREIGN KEY (user_id) REFERENCES users (id),
CONSTRAINT FOREIGN KEY (group_id) REFERENCES groups (id)
)
现在,例如,如果您希望从my_group
查询所有用户,则可以通过几个联接来做到这一点:
SELECT u.*
FROM users u
JOIN group_membership gm ON u.id = gm.user_id
JOIN groups g ON gm.group_id = g.id
WHERE g.name = 'my_group'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.