Есть ли база данных графов, которая позволяет добавлять произвольные типы ребер без необходимости полной миграции? - PullRequest
0 голосов
/ 04 мая 2020

Вот пример использования: скажем, я хотел создать приложение для заметок, которое позволяет пользователям создавать перекрестные ссылки между заметками или частями заметок. Когда пользователь создает перекрестную ссылку (кромку), он может указать тип связи (тип кромки). Пользователь также может ввести пользовательский тип ссылки (края).

Например, пользователь пишет одну заметку о Селии, а другую - о Барри. Затем она связывает записку Барри от Селии с типом ссылки «МУЖ». Она связывает записку Селии от Барри с типом ссылки «ЖЕНА». Ни «WIFE», ни «HUSBAND» не были явными типами ребер в ранее существовавшей схеме базы данных графов. добавление нового «типа» ребра (связи) между узлами требует полной миграции базы данных, поскольку ребра обычно хранятся как коллекции в этих системах.

Вместо того, чтобы позволить пользователю определять новые коллекции на лету , существуют ли какие-либо базы данных графов, которые обрабатывают ребра по-разному, т.е. не требуют, чтобы я заранее определял все возможные типы ребер?

1 Ответ

1 голос
/ 05 мая 2020

То, что вы здесь описываете, похоже на то, что вы думаете о моделировании гиперграфа. Если это важно, используя ваш пример МУЗА и ЖЕНЫ, заявленных до Барри и Селии, тогда вы вполне можете рассмотреть возможность моделирования МУЖА и ЖЕНЫ как самостоятельные узлы, а затем, когда данные Барри и Селии будут введены в базу данных, вы бы прикрепили их к этим узлам. Вы можете смоделировать это по-разному, но пример (из многих) может быть (Wife)<-[:HAS_REL_TYPE]-(Celia)-[:KNOWS]->(Barry)-[:HAS_REL_TYPE]->(Husband)

...