2013-07-13 2 views
0

Я нахожусь в сценарии:Наследование Картирование: прецедент

саундтрек может иметь несколько инструментов.

Из этого саундтрека могут быть некоторые версии с другим тоном и версиями без каких-либо инструментов или с другим тоном и без каких-либо инструментов.

В итоге:

  • оригинальный саундтрек
  • саундтрека с различными тонами
  • саундтрек без каких-либо инструментов
  • саундтрека с другим тоном, без каких-либо инструментов

Чтобы создать Я думал, что использовать Наследование, но я новичок и не знаю, Правильный путь!

Подсказки? Идея о том, как правильно создавать раалации?

Я подумал:

саундтрек -> N: M < - Инструмент

саундтрек ->? -> Soundtrack_tone

саундтрек ->? -> Soundtrack_any_instrument

Но я остановился здесь для неопытности.

ответ

1

Вам не нужно наследование в вашем случае. Наследование используется для отношения «есть», т. Е. Гитара -> инструмент. Если я читаю ваш вопрос, кажется, что у вас есть в основном 3 сущности:

  • Soundtrack
  • Instrument
  • Tone

Саундтрек может иметь несколько инструмент и несколько тонов. Те же инструменты могут быть связаны с различными саундтреками, и то же самое касается тона. Так что вам нужно создать 2 ассоциации:

  • Soundtrack -> Инструмент (ManyToMany)
  • Soundtrack -> Tone (ManyToMany)
+0

Спасибо за ответ. Моя идея использования наследования заключается в том, что есть оригинальная саундтрек, и тогда могут быть разные версии саундтрека, которые не являются инструментами или разными цветами, или обоими. Поэтому я не могу использовать саундтрек, непосредственно связанный с тонами и инструментами. – Lughino

+1

Хорошо, я понимаю. Я бы просто создал объект SoundtrackVersion, который имеет все ассоциации с тонами/инструментами. Теперь создайте ассоциацию oneToMany из Soundtrack -> SoundtrackVersion. Теперь у вас есть один экземпляр ваших исходных саундтреков в «Саундтреке» и извлеките все версии «Soundtrack-> getVersions()». –

+0

Спасибо вам большое! – Lughino

Смежные вопросы