gpt4 book ai didi

database - 如何建立用户/群组/成就数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:17 26 4
gpt4 key购买 nike

我正在开发一个新的网络平台,该平台有用户、组,这些用户可以获得成就(每个组都有自己的成就)来完成特定任务,这些是我目前拥有的表格:

  • 用户
  • 团体
  • Group_users (用于存储用户的组,因为用户可以加入多个组)
  • 成就
  • User_achievements (用于存储用户的成就,因为用户可以拥有多个成就)

我的问题是,在 User_achievements 表中,我应该存储用户和组 ID,还是只存储保存组和用户之间关系的组用户 ID?

最佳答案

首先回答您的问题,我将仅将 user_id 作为外键存储在 user_achievements 表中,因为成就链接到该表中的用户而不是组。

如果成就也与组相关联,正如您在对另一个答案的评论中提到的那样,则该关系应显示在成就表中,而不是 user_achievements 表中。

另外,为什么 Group_users 表会有自己的唯一 ID(您似乎暗示它是),这不只是一种加入多对多关系的方式吗?如果是这种情况,为什么不让 group_users 表的主键成为 user_id 外键和 groups_id 外键的组合。表不需要唯一 ID,因为两个外键的组合本身是唯一的。

编辑:

所以我会这样做:

Users table:
id (Primary Key)
... What ever other data you want to store for the user ...

Groups:
id (Primary Key)
... What ever other data you want to store for the group ...

Group_users:
user_id (Foreign Key to users.id) (Part of primary key)
group_id (Foreign Key to groups.id) (Part of primary key)

Achievements:
id (Primary Key)
group_id (Foreign Key to groups.id)
... What ever other data you want to store for the achievement ...

User_achievements:
achievement_id (Foreign key to achievements.id) (Part of primary key)
user_id (Foreign key to users.id) (Part of Primary Key)

关于database - 如何建立用户/群组/成就数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22181722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com