В текущих приложениях, над которыми я работаю, есть несколько сущностей, назовем их 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
и с учетом полей каждой сущности, которые должны быть проиндексированы.
Каков наилучший подход в этом случае? или есть какой-то другой вариант, который я пропускаю?