Здравствуйте.
Для примера:
есть таблица Notification (уведомления). Уведомления у нас могут быть системными (System), могут быть уведомления связанные с работой над сущностями БД. Соответственно, при получении уведомления нам необходимо узнать его тип, и получить данные, отталкиваясь от типа.
Далее вопрос, как будет более правильным : создавать дополнительные таблицы со связями OneToOne ?Notifications:- - id
- - user_id
- - created_at
- - active
- - type (SYSTEM_TYPE, POST_TYPE, COMMENT_TYPE ...)
NotificationSystem:- - id (one-to-one)
- - data
- - system_type
NotificationPost:- - id (one-to-one)
- - post_id
NotificationComments:- - id (one-to-one)
- - comment_id
-----
Либо создавать одну таблицу для всех случаев с разными столбцами:Notifications:- - id
- - user_id
- - created_at
- - active
- - type (SYSTEM_TYPE, POST_TYPE, COMMENT_TYPE ...)
- - system_type
- - post_id
- - comment_id
- ...
------
Либо использовать для дополнительных типов столбец EntityId:Notifications:- - id
- - user_id
- - created_at
- - active
- - type (SYSTEM_TYPE, POST_TYPE, COMMENT_TYPE ...)
- - system_type
- - entity_id ("Post23", "Post24", "Comment12", "Comment13" ...)
Хотелось бы узнать ваше мнение.
*надеюсь все правильно написал