Проблема: у меня есть таблица сущностей, которые существуют в разных таблицах.Однако все эти объекты могут создавать общие объекты (отправлять сообщения, создавать сообщения и т. Д.).Я хочу иметь возможность наиболее эффективно переходить от постов к соответствующим сущностям, в то же время позволяя себе переходить от указанной сущности и извлекать все ее посты.Кроме того, хранение сущностей в единственной таблице позволяет экономить данные, пока значения entity_id остаются уникальными и непротиворечивыми среди entity_table и таблиц для коллекций каждого entity_type (как в org_table и people_table).Также, когда я добавляю новые сущности, это позволяет мне отслеживать все сущности в единственном месте.
Условия: у меня есть две таблицы SQL, в которых хранятся разные объекты.Один - из людей, а другой - из организаций.
entity_table:
- entity_id
- entity_type (родительский ключ type_table.type_id)
type_table:
Записи в type_table:
- (1, organization_table)
- (2, people_table)
organization_table:
entity_id (родительский ключ entity_table.entity_id) имя членство ... ...
people_table:
- entity_id (родительский ключ entity_table.entity_id)
- fname
- lname
- ...
- ...
posts_table:
- post_id
- entity_id_sender - entity_id_recipient
- post_content
Цели вышеуказанной структуры:
- Я хочу иметь возможность перейти от posts_table к соответствующему лицу или организации, создавшей пост.
- Я также хочу иметь возможность перейти отentity_id в таблице организации или персонала для агрегирования всех их сообщений.
Как мне следует реализовать мою текущую структуру или реализовать лучшую структуру для обработки вставок / обновлений?Я открыт и для других идей, если они уменьшают задержки без ущерба для структурной целостности.