Представление DAG (направленный ациклический граф) - PullRequest
12 голосов
/ 10 октября 2010

Мне нужно хранить зависимости в DAG.(Мы планируем новую школьную программу на очень мелком уровне)

Мы используем рельсы 3

Соображения

  • Широко, чем глубоко
  • Очень большой
  • Я оцениваю 5-10 ссылок на узел.По мере роста системы это будет увеличиваться.
  • Много чтений, мало записей
  • Наиболее распространенными являются поиски:
    • зависимости первой и второй степени
    • поиск / проверка зависимостей

Я знаю SQL, я 'Рассмотрим NoSQL.

Ищем указатели на хорошее сравнение вариантов реализации.

Также интересует, с чего можно начать быстро, но позже будет менее болезненно переходить к чему-то более устойчивому / масштабируемому.

Ответы [ 4 ]

12 голосов
/ 08 декабря 2010

Я нашел этот пример моделирования ориентированного ациклического графа в SQL:

http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.aspx?msg=3051183

4 голосов
/ 13 октября 2010

Вы можете использовать OrientDB в качестве базы данных графа.Он очень оптимизирован для отношений, поскольку хранится как ссылка, а не как JOIN.Загрузка двунаправленного графа с 1000 вершинами требует нескольких миллисекунд.

Языковая привязка для Rails еще не доступна, но вы можете использовать ее с вызовами HTTP RESTful.

4 голосов
/ 10 октября 2010

Я думаю, что грядущая версия (бета-версия на данный момент) Ruby bindings для базы данных графов Neo4j должна хорошо подойтиОн предназначен для использования с Rails 3. Базовая модель данных использует узлы и направленные отношения / ребра с атрибутами стиля ключ / значение на обоих.Для масштабирования архитектур, предназначенных главным образом для чтения, Neo4j использует репликацию master / slave setup.

1 голос
/ 28 апреля 2013

Возможно, вы захотите взглянуть на гем act_as_dag.

https://github.com/resgraph/acts-as-dag

Также есть несколько хороших статей о Dags with SQL для людей, которым может потребоваться некоторый опыт в этом.

http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...