Есть ли база данных, которая может легко переваривать иерархические данные, кроме XML? - PullRequest
1 голос
/ 17 апреля 2010

Мне очень сложно спроектировать базу данных, потому что она требует много рекурсии. Я действительно не могу использовать XML, потому что он просто не практичен для масштабируемости и объема данных, которые мне нужно хранить. Ребята, вы знаете базу данных, которую можно использовать для хранения иерархических данных?

Ответы [ 5 ]

3 голосов
/ 17 апреля 2010

SQL Server 2008 имеет тип данных HierarchyId. Он специально разработан для этой задачи. Правильная индексация и ключи обеспечат вам быстрый доступ к данным как при поиске по глубине, так и по ширине.

http://technet.microsoft.com/en-us/library/bb677290.aspx

1 голос
/ 17 апреля 2010

Oracle легко разрешает иерархические запросы с синтаксисом CONNECT BY

Вы можете иметь собственную ссылочную таблицу, например:

Часть

part_id
parent_part_id

или пара таблиц, таких как:

Организация

org_ID
имя

org_relation

org_id1
org_id2

1 голос
/ 17 апреля 2010

Может быть, вы хотите иерархическую базу данных, такую ​​как LDAP ? OpenLDAP - бесплатная реализация.

0 голосов
/ 17 апреля 2010

SQL Server также позволяет хранить XML-файлы в отдельных полях, а затем легко анализировать определенные элементы / атрибуты из них с помощью запросов

0 голосов
/ 17 апреля 2010

Если вы открыты для NoSQL, то я бы порекомендовал MongoDB. Он ориентирован на документы, поэтому вы не привязаны к фиксированной схеме. Это также очень масштабируемый и производительный. В нем много хороших ООП-подобных вещей. Например, документ может содержать встроенные документы, поэтому, если ваша база данных уже спроектирована как XML, ее будет в основном тривиально хранить в MongoDB

...