小编典典

用户,组和标签数据库设计

sql

我在尝试为以下情况设计数据库结构时遇到困难:

我的数据库应包含一般用户信息UserID,FirstName,LastName,JoingingDate。

每个用户都可以成为组的一部分。

每个组都具有附加的“标签”,并且可以具有多个标签。用户还应该能够返回可用组的列表(按标签过滤)。

能够搜索组(通过附加到该组的标签),并搜索特定用户(通过姓氏或唯一ID)。)。它还应该能够返回可用组的列表(按标签过滤),以及特定组的成员(按姓氏过滤,并按加入日期过滤)。

还应该有一种方法来发现哪些用户组属于多个组(有关“谁是“ Bravo组”和“ Delta”组的成员的查询),并跟踪在该组中发送的消息(如论坛)。

这只是两个桌子吗?还是应该是三个表…用户,组和标签?自从我完成了任何关系数据库工作以来,已经快一年了,我想知道是否有人可以显示这种数据库设计的可视化表示形式?


阅读 210

收藏
2021-05-16

共1个答案

小编典典

我建议使用五个表:Users,Groups,Tag和链接表UserGroups和GroupTags。

这是因为用户和组之间以及组和标签之间似乎存在多对多关系-在关系设计中需要链接实体来连接具有多对多关系的实体。

 ---------   ------------   --------
 | Users |   |  Groups  |   | Tags |
 ---------   ------------   --------
     |         |      |        |
     |         |      |        |
    /|\       /|\    /|\      /|\
   --------------    -------------
   | UserGroups |    | GroupTags |
   --------------    -------------
2021-05-16