我正在使用MySQL,我需要为不同的用户组合创建一个唯一的组标签。一个组只需要至少一个用户,但用户组合和组标签必须是唯一的。
例如,我有三个用户及其ID:
我们可以从包含每个用户的三个组开始。名称可以是系统用户设置的任何名称,因此我们只需使用他们的第一个名字。我们会有小组L
,C
和M
。但现在我和Larry和Curly有一个小组,所以我想要另一个叫LC
的小组。 Larry和Curly不能组成另一个名称不同的组,但他们可以让Moe组建另一组LCM
。
现在,如果我有ID 1
和2
,我希望能够进行查询以提取组LC
。
我目前对如何做到这一点感到茫然。任何建议都会很棒。
提前致谢!
答案 0 :(得分:0)
LM可以与LC共存吗?
你的用户数不会超过64个吗?如果是这样,那么您可以将“组”实现为SET
数据类型或BIGINT UNSIGNED
。
the_group SET ('Larry', 'Curly', 'Moe')
在封面下,与
相同the_group TINYINT UNSIGNED
底部位为Larry
,下一位为Curly
,等等。
UNIQUE(the_group)
会说当前表中只有一行可以引用给定的组。
您尚未说明您希望在群组中执行哪些操作,因此我不会解释您可以操纵SETs
或整体的各种方法。用这些语义。
更多强>
或许您需要这些表格:
使用合适的3表JOIN
,您可以列出负责一个'订单'的所有'用户'。 Recommendation on many-to-many