проектирование базы данных - вопрос моделирования ERD для Graph в AWS - PullRequest
0 голосов
/ 04 марта 2019

У меня есть ERD для разработки базы данных для RDBMS.Набор данных имеет много-много взаимосвязей с политикой на основе атрибута типа набора данных.Сущность набора данных имеет много атрибутов.

Проблема заключается в том, что в будущем набор данных может иметь дополнительные атрибуты для запроса.Теперь это приводит меня к базе данных NOSQL, такой как DynamoDB.Но неизвестные запросы по дополнительным атрибутам приводят меня (IMHO) к модели Graph поверх NoSQL DB.Таким образом, я могу иметь следующее отношение графика:

Набор данных имеет тип.Тип имеет Политику.Тип также имеет политику по умолчанию, если она не указана.Это сделано для того, чтобы смоделировать связь множества со многими из набора данных с политикой для типа набора данных.Позже я могу добавить дополнительные атрибуты к объекту набора данных и добавить его в базу данных NOSQL, а также запросить его, используя модель графика (Neptune) поверх NOSQL?Это правильный способ моделировать это?

enter image description here

TIA,

1 Ответ

0 голосов
/ 07 марта 2019

Принял другое решение проблемы обработки дополнительных атрибутов будущего, используя Postgres со столбцом jsonb для сущности набора данных.

metadata jsonb,

Итак, вы можете добавить столько новых атрибутов в этот json и нажатьэто к столбцу JSONB.Затем я могу запросить его следующим образом в предложении WHERE:

metadata->>'startIdx' <= '${startIdx}'

Таблицу не нужно будет менять с новым полем, но в запросе нужно будет разместить новое поле в запросе.Давным-давно xml использовался вместо json для этой же концепции, но СУБД не имела способа запрашивать данные json в столбце.

Postgres Jsonb Doc

...