EntityFramework 代码优先的数据库设计

EntityFramework Code-First Database Design

我正在尝试使用 EF6 Code-First 方法勾勒出一个基本的音乐目录数据库。这就是我到目前为止所做的:

我们有乐队,其中包括艺术家(s),并且可能有专辑 .

专辑包含歌曲(s)并且可能有封面.

乐队属于一个或多个流派(s)。 合辑只是一些乐队

的集合

Band 可能有 Photo(s)。 艺术家可能还有个人照片(s)。

这是到目前为止我已经设法实现的图表(从 DbContext 生成):

问题:

  1. 如何实现 GenreBand 之间的多对多关系(多个 Band 属于多个 Genres)?
  2. 如何让 Band 属于许多 Compilations
  3. 我的设计从一开始就存在缺陷吗?关于改进(甚至重新设计)它有什么建议吗?

感觉我在这里遗漏了一些非常基本的东西。

感谢您抽出时间

  1. 对于 Band 和 Genre 之间的 m:m 关系,您还需要一个 table Band_Genre,它有 2 个字段,ID_Band 和 ID_Genre.

  2. 对于band-compilation的关系,你可以做一些不同的,将歌曲添加到compilations中(就像在现实世界中一样)然后按照Band-Album-Song-Compilation的关系。为什么合辑不是专辑?

整体设计很漂亮。