2012-05-25 1 views
12

Я хочу использовать базу данных графа для веб-приложения (с использованием сети пользователей, сообщений, комментариев, голосов, ответов, документов и документов и других переходных отношений для пользователей и документов). Поэтому я начинаю спрашивать себя, есть ли что-то вроде методологии проектирования для баз данных Graph, т. Е. Своего рода аналог принципов проектирования, рекомендованных для реляционных баз данных (например, таких нормальных форм)?Методы построения диаграмм диаграмм

Пример вопроса (из многих вопросов, возникающих):

  • Это хорошая идея, чтобы создать Top-Node пользователей, имеющие отношения ("существовать") на любом User-Node в базе данных?
  • Это хорошая идея для создания в управлении версиями (т. Е. Создания отношений (что-то вроде «следует»)), указывая на обновленные версии документа/сообщения таким образом, что возврат этих отношений означает просмотр изменений, которые прошел документ ,
  • и т.д ...

Итак, нам нужен Graph Database Design Cookbook?

ответ

5

Группа пользователей Gremlin (http://tinkerpop.com/) и группа пользователей Neo4j (https://groups.google.com/forum/?fromgroups#!forum/neo4j) - хорошие места для обсуждения моделирования диаграмм на основе графов.

Вы можете создавать суперноды, такие как «Пользователи», но лучше использовать индексы и создавать индексную запись для каждого пользователя с ключом = element_type, значением = «пользователь», id = user_node_id.

Отношение «следует» часто используется для людей/друзей, таких как Facebook и Twitter, поэтому я бы не использовал это для управления версиями. Вы можете создать систему управления версиями в Neo4j, которая отметит каждую запись и использует алгоритм с последними комментариями, и есть другие системы баз данных, такие как Datomic, которые имеют этот встроенный.

См. Модель Lightbulb (https://github.com/espeed/lightbulb/blob/master/lightbulb/model.py) для примера блога модель в лампочках/Python (http://bulbflow.com).

 Смежные вопросы

  • Нет связанных вопросов^_^