mysql - 如何让单列引用多个表

标签 mysql sql database-design

我这里有4张表,它们的关系如下: enter image description here

对于“band”表,我有 4 列:id、band_name、first_name、last_name。 (名字和姓氏指的是“独立艺术家”表中的列)。

对于“独立艺术家”,我有 3 列:id、first_name、last_name。

对于“act”表,我有 3 列:id、表演者、音乐。这里的调香师,我想指的是乐队和独立艺术家表。

对于“音乐”表,我有 3 列:id、song_name、release_year。

我也在这里预测 future 的变化,例如如果乐队中的团队成员想要更改他的姓氏,它会同时影响“乐队”和“独立艺术家”表。

直觉上我认为我的解决方案不好,谁能为表格提供更好的设计?谢谢。

最佳答案

这是我的建议:

波段表:

  • band_id 公钥
  • 乐队名称

艺术家表:

  • artist_id 公钥
  • 名字
  • 姓氏

乐队成员表:

  • band_id FK
  • artist_id FK

行为表:

  • act_id 公钥
  • band_id FK

音乐表:

  • music_id 公钥
  • 歌曲名
  • 发布年份

Act_Contents 表:

  • act_id FK
  • music_id FK

不需要单独的 Independent Artists 表。就把他们当成只有一个成员的乐队吧。而且您应该始终使用 ID 作为外键,这样您就不必担心在属性更改时更新引用;您只需更改一处,引用不受影响。

关于mysql - 如何让单列引用多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157122/

相关文章:

javascript - 带按钮的模态缩略图

php - 无法弄清楚这个 mysql 到 mysqli 的变化

php - 根据不同字段的搜索结果删除一个字段

mysql - 逗号分隔的连接和MySQL中的语法连接有什么区别?

java - 根据多列的比较在数据库中创建列

mysql - Where 子句不适用于 MySQL Select-Query 中的所有列

php - php如何设计数据库实现网站导航效果?

database-design - 如何设计一个针对多种运动项目的体育统计数据库?

sql-server - 我应该垂直分割 table 吗?

mysql - MySQL WHERE 子句中的当前日期