【问题标题】:Schema database with multiple category of user具有多类用户的模式数据库
【发布时间】:2013-12-13 23:49:15
【问题描述】:

我想启动一个项目来学习如何为我未来的应用程序创建一个好的架构。我开始对我的项目有一些疑问,但现在我真的很想知道如何在这种情况下制作一个好的架构:

我开始看到我有 2 个主要类别,普通用户和团队。这种“技巧”的工作类似于 facebook,用户可以创建自己的团队,他们可以切换属性并控制他们的团队。

拥有 2 个不同的个人资料,用户个人资料和团队个人资料。我需要展示帖子、cmets 和照片。

所以我的问题是:

我必须创建 2 种类型的表,一种用于用户,另一种用于团队?或者是更好地创建一个唯一的表,并且只有一个带有整数的列来知道是用户还是管理员?

例子

table users -- user_posts
table admin -- admin_posts

或

table user --|__ posts // and have a column "type" on where if is 1 is user if is 2 is 
table team --|

【问题讨论】:

  • 也许考虑一个层次结构(在单个表中),其中teams 只是orphaned users(没有父母的用户)。那么你只关心父级为 NULL 的用户。

标签: mysql


【解决方案1】:

我会选择第二个选项,让您以后更灵活的开发。

table users
user_id, password, team_ID, etc

table team
team_id, admin_id (FKEY from user_id), name, description, etc

【讨论】:

  • 是的,我已经这样设置了我的桌子,但是如果我想创建 2 个画廊,一个是用户,另一个是团队,最好有 2 个表格,比如 team_photos 和 user_photos,或者只有一张照片并有一个id 用于知道是用户还是团队?
【解决方案2】:

根据团队/组的事情,你应该创建三个表:

  1. 用户
  2. 团队
  3. 哪个用户在哪个团队中具有哪些权限

对于 3,您可以在项目中添加一种具有已定义规则的枚举...例如管理员,编辑...你的名字。

【讨论】:

  • 感谢您的回答,但是例如,如果我必须创建一个画廊,一个给用户,一个给团队。你建议做什么?一个名为 example gallery 的表具有 id_photo - name_photo - id_poster - id_type 其中 id_type 如果是 1 我将去搜索表 user 列 id_poster 上的通讯用户否则如果是 2 我将去搜索团队 id 列 id_poster 或者是更好地做 2 个不同的表,例如 photo_user 和 photo_team?
猜你喜欢
  • 2021-08-04
  • 2013-09-06
  • 2010-11-25
  • 2015-02-27
  • 1970-01-01
  • 2019-09-22
  • 2011-10-17
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多