База данных свойств-значений - PullRequest
1 голос
/ 23 февраля 2009

У меня есть несколько объектов, у каждого из которых есть произвольное количество общих и различных пар свойство-значение (более конкретно: файлы и связанные с ними свойства, такие как ширина и высота для изображений, альбом / исполнитель / длина музыкальных файлов и т. д.). Я хотел бы иметь возможность искать объекты, имеющие определенное свойство / значения (например, по альбому), группировать по свойству и т. Д.

Какую базу данных вы бы предложили для этого сценария? Из-за модульности (возможность добавлять дополнительные свойства «на лету»), а также из-за того, что общие свойства составляют <20% от всех свойств, стандартный SQL с нормализованными таблицами действительно не будет его сокращать. Я уже пытался решить проблему с помощью "<a href="http://philip.greenspun.com/seia/user-registration-and-management" rel="nofollow noreferrer"> тощей модели данных "; однако я столкнулся с серьезными проблемами масштабируемости.

Существуют ли какие-либо специализированные базы данных, настроенные для этого сценария (предпочтительнее BSD-лицензированные решения)? Или какой-нибудь альтернативный способ настройки стандартных RDBM для этого?

Ответы [ 4 ]

2 голосов
/ 23 февраля 2009

Поиск объекта, имеющего некоторые свойства, заставляет меня задуматься о хранилище данных RDF. Посмотрите API RDF (см. JENA, кунжут, виртуоз).

Или BerkeleyDB?

0 голосов
/ 24 февраля 2009

Пьер прав; Тройной магазин - это то, что вы хотите, и RDF является стандартом для этого. SPARQL является стандартным языком для запросов (во многом как SQL для СУБД).

0 голосов
/ 24 февраля 2009

То, о чем вы говорите, называется EAV модель или тройной магазин. Позже можно запросить с помощью SPARQL

0 голосов
/ 23 февраля 2009

Посмотрите на базы данных, предлагаемые различными облачными сервисами:

Если облачные базы данных не подходят, BerkelyDB может быть хорошим выбором.

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