SQL постфиксная запись в формате ARRAY в БД - PullRequest
0 голосов
/ 23 февраля 2020

Мне нужно хранить логические правила, которые представляют комбинации записей таблицы «Элемент» и логического оператора (только AND, OR). Это правило может быть выражено в инфиксной нотации как:

e1 OR (e2 AND e3 AND a4)

Мое намерение - сохранить это правило в постфиксной нотации, что позволит мне лучше его обработать и убрать необходимость в скобках. То же выражение в постфиксе выражается как:

e1 e2 e3 AND a4 AND e1 OR

И сохраните его в БД в виде массива. Моя проблема связана с различными типами данных, которые будут содержать массив, так как идентификаторы из таблицы Element - uuids , а логические операторы - просто строки.

Один из вариантов - сохранить в массиве uuids в виде строк и проверить, действительно ли они являются uuids, а затем иметь триггер, который запускается при вставке и обновлении, чтобы проверить, что uuid действителен и соответствует записи в таблице элементов, или что элемент является логическим операндом

Таблица, в которой хранятся эти правила, будет обновляться не часто, поэтому я ищу лучшие варианты для хранения этой информации и обеспечения минимальной целостности данные

Для справки используйте Postgres 12 с docker

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