Лучшая модель для графической базы данных

Steve спросил: 28 марта 2018 в 03:43 в: database-design

Я пытаюсь узнать, как использовать графические базы данных (в частности, Neo4j).

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

Сценарий:

У меня есть 3 человека, которые могут в любой день путешествовать в один из 5 городов, или они могут выбрать чтобы оставаться в городе, в котором они сейчас находятся. Я, возможно, хочу знать любой из следующих ответов:

  • В какой день был человек 1 в городе 2?

    / li>
  • В какой день был человек 2 в городе 1 и отправился в город 2?

  • В какой день человек 3 не путешествовал, и какой город был он / она в?

  • Кто путешествовал по городу 4 и в какие дни они путешествовали туда?

  • Где был человек 2 в такую-то дату?

  • Список вопросов может продолжаться и далее ...

Вопрос (ы):

Предполагая, что person является узлом, что имеет смысл?

  • A. Создайте узлы для каждой комбинации travel_from_city - travel_to_city и используйте дату date как отношение
  • B. Создайте узлы для каждой из дат и используйте travel_from_city - travel_to_city как отношение

i.e. Либо у меня есть, скажем, 365 (и растущие) даты узлы и фиксированное число городских отношений (по одному для каждого города - городская комбинация). Или у меня есть растущее число отношений даты и фиксированное число городских узлов (по одному для каждого города - городская целевая комбинация).

Являются ли отношения более "дорогими", чем узлы? Или узлы более "дорогие", чем отношения.

Какая модель окажется наиболее гибкой для заданий, о которых я еще не думал?

Я ценю вашу помощь и предложения


1 ответ

Steve ответил: 03 апреля 2018 в 01:21

В итоге я использовал:

(Person)-[:HAS_DATE]->(City)