协作软件的数据库架构

问题描述 投票:-2回答:2

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

表结构

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

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

mysql database database-schema
2个回答
0
投票

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

如果它们具有相同类型的数据,请将其保留为一个表。如果两者之间有很多差异,可以将它们分开。注意,将它们分开没有错,但是最佳实践是创建保存相同数据的集合。您的数据库不负责决定属于您的访问控制代码的特定用户可以做什么。还要问自己一个问题,例如,如果一个音乐家想雇用另一个音乐家,该怎么办?您最终将拥有冗余,这在关系数据库中通常是不好的设计。

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


0
投票

您可以在users表中添加user_type字段,并按user_type区分用户。

© www.soinside.com 2019 - 2024. All rights reserved.