【问题标题】:Database schema for Collaboration software协作软件的数据库架构
【发布时间】:2019-10-02 05:38:11
【问题描述】:

我正在为音乐家招聘和协作应用程序设计一个数据库。 主要思想- 有两种类型的用户 - 音乐家听众。音乐家可以上传音频/视频帖子,并可以向其他音乐家发送协作请求。 听众可以查看音乐家的帖子并向他们发送招聘请求。

表格结构

  1. 用户
  2. 帖子
  3. 喜欢
  4. 评论
  5. 雇用
  6. 合作

我应该为音乐家和听众制作单独的表格吗?他们有许多共同的领域,但只有音乐家才能创建帖子。

【问题讨论】:

  • 仅供参考,我删除了 PHP 标记,因为问题是关于数据库架构的。

标签: mysql database database-schema


【解决方案1】:

您是在谈论拆分用户表吗?

如果他们有相同类型的数据,则将其保留为一张表。如果它们有很多差异,您可以将它们分开。请注意,将它们分开并没有错,但最佳实践是创建包含相同数据的集合。您的数据库不负责决定特定用户可以做什么,这属于您的访问控制代码。 还要问自己这样的问题,如果一位音乐家想聘请另一位音乐家怎么办?你最终会得到冗余,这在关系数据库中通常是糟糕的设计。

您还可以为每种类型的用户创建两个具有附加属性的附加表,但在 users 表中保留公共数据。例如,每个用户可能都有一个用户名和一个密码。

【讨论】:

    【解决方案2】:

    您可以在 users 表中添加一个 user_type 字段,并通过 user_type 区分用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多