В настоящее время мы внедряем CRM-подобное решение для профессиональной фирмы. Из-за характера хранимой информации и различных значений и ключей для информации мы решили использовать базу данных хранения документов, так как она идеально подходит для целей (в этом случае мы выбрали MongoDB).
В рамках этого CRM-решения мы хотим хранить отношения и ассоциации между сущностями, примеры включают хранение информации о конфликте интересов, акционеров, доверенных лиц и т.д. Связывая все эти сущности вместе самым эффективным способом, мы определили центральную модель "отношений" "было необходимо. Все отношения должны иметь прикрепленную к ним историческую информацию (даты начала и окончания), а также различные метаданные; например, отношения с акционерами также будут содержать количество акций.
Поскольку традиционные решения РСУБД не устраивали наши прежние потребности, использование их в нашей нынешней ситуации нецелесообразно. Я пытаюсь определить, подходит ли использование базы данных графа в нашем случае, или если на самом деле просто использовать встроенную реляционную информацию mongo.
Информация о взаимоотношениях будет использоваться довольно сильно во всей системе. Примером некоторых информационных запросов, которые мы хотим выполнить, являются:
- Получить всех "ключевых контактов" людей из компаний, которые являются "клиентами" из "xyz limited"
- Получить всех других "акционеров" компаний, где "john" является акционером.
- Получите все "ключевые контакты" с людьми, которые являются "клиентами" с "abc limited" и являются клиентами "доверять нам ограниченным банком".
Учитывая эту "древовидную" структуру отношений, более удобно использовать базу данных графа (например, Neo4j)?