我在尝试为以下情况设计数据库结构时遇到困难:
我的数据库应包含一般用户信息UserID,FirstName,LastName,JoingingDate。 每个用户都可以成为组的一部分。 每个组都具有附加的“标签”,并且可以具有多个标签。用户还应该能够返回可用组的列表(按标签过滤)。 能够搜索组(通过附加到该组的标签),并搜索特定用户(通过姓氏或唯一ID)。)。它还应该能够返回可用组的列表(按标签过滤),以及特定组的成员(按姓氏过滤,并按加入日期过滤)。 还应该有一种方法来发现哪些用户组属于多个组(有关“谁是“ Bravo组”和“ Delta”组的成员的查询),并跟踪在该组中发送的消息(如论坛)。
我的数据库应包含一般用户信息UserID,FirstName,LastName,JoingingDate。
每个用户都可以成为组的一部分。
每个组都具有附加的“标签”,并且可以具有多个标签。用户还应该能够返回可用组的列表(按标签过滤)。
能够搜索组(通过附加到该组的标签),并搜索特定用户(通过姓氏或唯一ID)。)。它还应该能够返回可用组的列表(按标签过滤),以及特定组的成员(按姓氏过滤,并按加入日期过滤)。
还应该有一种方法来发现哪些用户组属于多个组(有关“谁是“ Bravo组”和“ Delta”组的成员的查询),并跟踪在该组中发送的消息(如论坛)。
这只是两个桌子吗?还是应该是三个表…用户,组和标签?自从我完成了任何关系数据库工作以来,已经快一年了,我想知道是否有人可以显示这种数据库设计的可视化表示形式?
我建议使用五个表:Users,Groups,Tag和链接表UserGroups和GroupTags。
这是因为用户和组之间以及组和标签之间似乎存在多对多关系-在关系设计中需要链接实体来连接具有多对多关系的实体。
--------- ------------ -------- | Users | | Groups | | Tags | --------- ------------ -------- | | | | | | | | /|\ /|\ /|\ /|\ -------------- ------------- | UserGroups | | GroupTags | -------------- -------------