Inheritance 继承映射:用例

Inheritance 继承映射:用例,inheritance,symfony,doctrine-orm,doctrine,symfony-2.3,Inheritance,Symfony,Doctrine Orm,Doctrine,Symfony 2.3,我发现自己处在一个场景中: 一个配乐可以有多种乐器 在这些原声带中,可以有一些不同音调的版本,也可以没有任何乐器的版本,或者有不同音调的版本,也可以没有任何乐器的版本 总之: 原声带 不同音调的配乐 没有任何乐器的配乐 音色不同的配乐,没有一些乐器 为了创建一个数据库,我曾想过使用继承映射,但我是一个初学者,不知道这是否是正确的方法 小费?关于如何正确创建关系的想法 我想: 配乐->N:M?->配乐 配乐->?->任何乐器的配乐 但我停在这里是因为缺乏经验。你的情况不需要继承。继承用于“是一

我发现自己处在一个场景中:

一个配乐可以有多种乐器

在这些原声带中,可以有一些不同音调的版本,也可以没有任何乐器的版本,或者有不同音调的版本,也可以没有任何乐器的版本

总之:

  • 原声带
  • 不同音调的配乐
  • 没有任何乐器的配乐
  • 音色不同的配乐,没有一些乐器
为了创建一个数据库,我曾想过使用继承映射,但我是一个初学者,不知道这是否是正确的方法

小费?关于如何正确创建关系的想法

我想:

配乐->N:M?->配乐

配乐->?->任何乐器的配乐


但我停在这里是因为缺乏经验。

你的情况不需要继承。继承用于“是一种”关系,即吉他->乐器。 如果我读了你的问题,看起来你基本上有3个实体:

  • 配乐
  • 仪器
  • 语气
一个音轨可以有多种乐器和多种音调。同样的乐器可以与不同的音轨相关联,音调也是如此。 因此,您需要创建两个关联:

  • 配乐->乐器(许多)
  • 配乐->音调(许多)

谢谢您的回答。我使用继承映射的想法是因为有原始的配乐,然后可能有不同版本的配乐,没有乐器或颜色不同,或者两者都有。所以我不能直接使用声调和乐器的配乐。好的,我明白了。我只需要创建一个SoundtrackVersion实体,它具有与音调/乐器的所有关联。现在从Soundtrack->SoundtrackVersion创建一个oneToMany关联。现在您在
Soundtrack
中有了一个原始音轨的实例,并检索所有版本,
Soundtrack->getVersions()