Postgres: несколько таблиц против одной таблицы и несколько индексов - PullRequest
0 голосов
/ 24 августа 2018

В текущих приложениях, над которыми я работаю, есть несколько сущностей, назовем их A, B и C, каждое из которых уникально идентифицируется с помощью id и group_id группы, к которой они принадлежат к. В настоящее время все экземпляры этих объектов хранятся в одной таблице со следующими полями:

id: primary key
group_id: id of the group 
data: jsonb field containing all the custom entity fields 

Меня беспокоит сохранение всех сущностей в одной таблице, сначала из-за размера самой таблицы, а затем, поскольку они используются в разных приложениях, и все они должны быть проиндексированы по-разному, так как поля различаются между экземпляры A и B или C.

Я думаю о двух подходах:

  • разделяя сущности в разных таблицах, по одному для каждого group_id, добавьте индексы, специфичные для сущности, для каждой таблицы.
  • хранит экземпляры в одной таблице, устанавливает индекс для group_id, а затем различные индексы на основе group_id и с учетом полей каждой сущности, которые должны быть проиндексированы.

Каков наилучший подход в этом случае? или есть какой-то другой вариант, который я пропускаю?

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