Database design 实体关系图-可以有多种类型的实体

Database design 实体关系图-可以有多种类型的实体,database-design,entity-relationship,relationship,Database Design,Entity Relationship,Relationship,如何表示可以是乙烯基和/或cd和/或磁带的唱片集实体。我假设这些不能被声明为专辑实体的子类型,因为专辑不可能都是它们。它应该是唱片集实体的多值属性吗? 此外,每种类型的乙烯基、cd、磁带都有不同的属性(例如,乙烯基可能有颜色,cd可能有相关的视频剪辑等) 对于一个艺术家实体,我如何才能成为一个独唱艺术家和一个团体艺术家?目前,我有一个艺术家实体,其子类型为Solo(具有更多属性)和Group(具有艺术家的多值属性) 我在独奏和团体(MemberOf)之间建立了一种关系,这对许多团体来说都是一个独

如何表示可以是乙烯基和/或cd和/或磁带的唱片集实体。我假设这些不能被声明为专辑实体的子类型,因为专辑不可能都是它们。它应该是唱片集实体的多值属性吗? 此外,每种类型的乙烯基、cd、磁带都有不同的属性(例如,乙烯基可能有颜色,cd可能有相关的视频剪辑等)

对于一个艺术家实体,我如何才能成为一个独唱艺术家和一个团体艺术家?目前,我有一个艺术家实体,其子类型为Solo(具有更多属性)和Group(具有艺术家的多值属性)

我在独奏和团体(MemberOf)之间建立了一种关系,这对许多团体来说都是一个独奏

这是正确的还是我应该改变它


谢谢

我可能会从这样的东西开始,然后根据其他需要进行调整:

albums
    id              unsigned int(P)
    name            varchar(100)
    artist_id       unsigned int(F artists.id)
    released        date
    ...

+----+------------------+-----------+------------+-----+
| id | name             | artist_id | released   | ... |
+----+------------------+-----------+------------+-----+
|  1 | ...But Seriously |         1 | 1989-11-07 | ... |
|  2 | Invisible Touch  |         2 | 1986-06-09 | ... |
|  3 | Heaven and Hell  |         3 | 1980-04-25 | ... |
| .. | ................ | ......... | .......... | ... |
+----+------------------+-----------+------------+-----+

artists
    id              unsigned int(P)
    name            varchar(50)
    ...

+----+------------------+
| id | name             |
|  1 | Phil Collins     |
|  2 | Genesis          |
|  3 | Black Sabbath    |
|  4 | Ronnie James Dio |
|  5 | Dio              |
|  6 | Mike Rutherford  |
| .. | ................ |
+----+------------------+

artists_artists
    id              unsigned int(P)
    artist_id       unsigned int(F artists.id)
    group_id        unsigned int(F artists.id)

+----+-----------+----------+
| id | artist_id | group_id |
+----+-----------+----------+
|  1 |         1 |        2 |
|  2 |         4 |        3 |
|  3 |         4 |        5 |
|  4 |         6 |        2 |
| .. | ......... | ........ |
+----+-----------+----------+

cds
    id                  unsigned int(P)
    album_id            unsigned int(F albums.id)
    ...

+----+----------+-----+
| id | album_id | ... |
+----+----------+-----+
|  1 |        1 | ... |
|  2 |        2 | ... |
| .. | ........ | ... |
+----+----------+-----+

colours
    id                  unsigned int(P)
    name                varchar(20)

+----+------+
| id | name |
+----+------+
|  1 | Red  |
|  2 | Blue |
| .. | .... |
+----+------+

tapes
    id                  unsigned int(P)
    album_id            unsigned int(F albums.id)
    ...

+----+----------+-----+
| id | album_id | ... |
+----+----------+-----+
|  1 |        1 | ... |
|  2 |        2 | ... |
| .. | ........ | ... |
+----+----------+-----+

vinyls
    id              unsigned int(P)
    album_id        unsigned int(F albums.id)
    colour_id       unsigned int(F colours.id)
    ...

+----+----------+-----------+-----+
| id | album_id | colour_id | ... |
+----+----------+-----------+-----+
|  1 |        1 |         1 | ... |
|  2 |        1 |         2 | ... |
|  3 |        3 |         3 | ... |
| .. | ........ | ......... | ... |
+----+----------+-----------+-----+

你对这件事做过调查吗?比如说?你的问题听起来像是在征求意见,我在任何地方都看不到问题的存在。我不会将乙烯基、cd或磁带作为子类型,而是将它们分类……是的,我有。问题是如何制作唱片集实体,它可以是乙烯基、cd、磁带的任意组合,每种类型都添加自己的属性?子类型将允许它是一种类型,但不是我所知的所有类型,所以我正在寻求一种方法来处理这个问题。艺术家问题是一个基于观点的问题。谢谢
子类型将允许它是一种类型…
。这对于独占子类型是正确的。通常不正确,子类型可能重叠。非常感谢!不知道ER中有重叠的子类型!你是个明星!