Есть Event, бывает он разных типов.
Каждый Event связан с Place на уровне базы.
Тебе нужно как-то разделить ивенты разных типов на уровне приложения.
Можно:
- сделать абстрактный класс Event
, отнаследовать от него SpecialEvent
и TypicalEvent
. Получатся связи на уровне базы/моделей: Place -> SpecialEvent и Place -> TypicalEvent. Нужно будет дополнительно думать как ограничить связи
- можно сделать почти также, но вместо обычного FK использовать дженерик. Будут отвратительные связи на уровне базы, но относительно чистенько на уровне приложения
- можно сделать Event и две прокси модели. Связи на уровне базы/моделей будут Place -> Event, но на уровне приложения можно будет по признакам вытаскивать прокси модель и получать все плюшки от этого
Сорян за долгий ответ.
Не совсем понял, что значит "нужно как-то разделить ивенты разных типов на уровне приложения"? Можно же просто поле с заранее определённым выбором сделать. B выбирать при создании объектов Event будет ли это Special или Typical event.