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

В настоящее время мы находимся в процессе внутреннего внедрения CRM-решения для профессиональной фирмы. Из-за характера хранимой информации, а также различных значений и ключей для информации мы решили использовать базу данных для хранения документов, поскольку она идеально подходит для этих целей (в данном случае мы выбрали MongoDB).

Как часть этой CRM решение, которое мы хотим хранить отношения и ассоциации между объектами, примеры включают хранение информации о конфликте интересов, акционерах, попечителях и т. д. Связывая все эти сущности вместе наиболее эффективным способом, мы определили, что необходима центральная модель «отношений». Все отношения должны иметь привязанную к ним историческую информацию (даты начала и завершения), а также различные метаданные; например, отношения с акционерами также будут включать количество принадлежащих им акций.

Поскольку традиционные решения СУБД не удовлетворяли нашим прежним потребностям, их использование в нашей текущей ситуации нецелесообразно. Я пытаюсь определить, является ли использование графической базы данных более уместным в нашем случае, или, на самом деле, уместно просто использование встроенной реляционной информации mongo.

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

  • Получить все «ключевые контакты» люди компаний, которые являются «клиентами» «xyz limited»
  • Получить всех других «акционеров» компаний, в которых «Джон» является акционером.
  • Получить всех «ключевых контактных лиц» лиц организаций, которые являются «клиентами» abc limited »и являются ли клиенты« Trust us bank limited »

Учитывая эту« древовидную »структуру отношений, является ли использование графовой базы данных (такой как Neo4j) более подходящей?

16
задан Mike Scott 28 April 2011 в 11:07
поделиться