Таблица сущностей SQL: метод для хранения различных объектов, которые используют похожие функции - PullRequest
0 голосов
/ 20 сентября 2019

Проблема: у меня есть таблица сущностей, которые существуют в разных таблицах.Однако все эти объекты могут создавать общие объекты (отправлять сообщения, создавать сообщения и т. Д.).Я хочу иметь возможность наиболее эффективно переходить от постов к соответствующим сущностям, в то же время позволяя себе переходить от указанной сущности и извлекать все ее посты.Кроме того, хранение сущностей в единственной таблице позволяет экономить данные, пока значения entity_id остаются уникальными и непротиворечивыми среди entity_table и таблиц для коллекций каждого entity_type (как в org_table и people_table).Также, когда я добавляю новые сущности, это позволяет мне отслеживать все сущности в единственном месте.

Условия: у меня есть две таблицы SQL, в которых хранятся разные объекты.Один - из людей, а другой - из организаций.

entity_table:

  • entity_id
  • entity_type (родительский ключ type_table.type_id)

type_table:

  • type_id
  • name

Записи в 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

Цели вышеуказанной структуры:

  1. Я хочу иметь возможность перейти от posts_table к соответствующему лицу или организации, создавшей пост.
  2. Я также хочу иметь возможность перейти отentity_id в таблице организации или персонала для агрегирования всех их сообщений.

Как мне следует реализовать мою текущую структуру или реализовать лучшую структуру для обработки вставок / обновлений?Я открыт и для других идей, если они уменьшают задержки без ущерба для структурной целостности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...