MySQL结构 - 独特的用户组

时间:2016-04-12 22:10:35

标签: mysql database-design relational-database

我正在使用MySQL,我需要为不同的用户组合创建一个唯一的组标签。一个组只需要至少一个用户,但用户组合和组标签必须是唯一的。

例如,我有三个用户及其ID:

  • 拉里(1)
  • Curly(2)
  • Moe(3)

我们可以从包含每个用户的三个组开始。名称可以是系统用户设置的任何名称,因此我们只需使用他们的第一个名字。我们会有小组LCM。但现在我和Larry和Curly有一个小组,所以我想要另一个叫LC的小组。 Larry和Curly不能组成另一个名称不同的组,但他们可以让Moe组建另一组LCM

现在,如果我有ID 12,我希望能够进行查询以提取组LC

我目前对如何做到这一点感到茫然。任何建议都会很棒。

提前致谢!

1 个答案:

答案 0 :(得分:0)

LM可以与LC共存吗?

你的用户数不会超过64个吗?如果是这样,那么您可以将“组”实现为SET数据类型或BIGINT UNSIGNED

the_group SET ('Larry', 'Curly', 'Moe')

在封面下,与

相同
the_group TINYINT UNSIGNED

底部位为Larry,下一位为Curly,等等。

UNIQUE(the_group)

会说当前表中只有一行可以引用给定的组。

您尚未说明您希望在群组中执行哪些操作,因此我不会解释您可以操纵SETs或整体的各种方法。用这些语义。

更多

或许您需要这些表格:

  • 组:group_id,user_id(多对多映射表)
  • 订单:订单信息...,group_id
  • 用户:user_id,username,...

使用合适的3表JOIN,您可以列出负责一个'订单'的所有'用户'。 Recommendation on many-to-many