Выбор базы данных документов и графиков - PullRequest
3 голосов
/ 16 мая 2011

У меня есть потребности для моей системы:
1) Друзья - необходимо рассчитать расстояние между пользователями до N градусов, найти общие для пользователя общие элементы работы. Не могу масштабировать это onmysql хорошо. Таким образом, выбор, который я предполагаю, является базой данных Графа?

2) У меня есть поля профиля пользователя, около 120 полей, причем 80% из них являются полями 1: M, поэтому в mysql это означает около 96 таблиц для хранения 1: M. Если мне нужно вытащить всю информацию пользователя, то мне нужно добраться до всех этих таблиц. Итак, решение здесь - это база данных документов, база данных столбцов или база данных значений ключей?

В настоящее время я видел OrientDB, который может выступать в качестве базы данных для документов и графиков. Может ли это быть использовано для вышеуказанных нужд или есть лучшие варианты БД для этого?

Спасибо.

EDIT: Требование для профиля - это пользовательские поля: это профессиональная социальная сеть, поэтому множество портфолио, таких как 1: M. Так что, если есть 120 полей с 96 из них 1: M, как лучше хранить его? Например, компании, в которых вы работали. Школы, в которых вы учились. Журналы, которые вы читаете. Статьи, которые вы написали, и т. Д. Каждая из них имеет размер 1: M, и есть 96 таких полей = 96 таблиц Mysql. Я не могу объединить, потому что некоторые из них имеют уникальные метаданные. Мне нужно искать по полям и быстро читать, чтобы поддерживать удобство работы.

Для построения графиков: речь идет о соединении людей. Для запуска я использую только одну функцию, когда вы просматриваете кого-то, система скажет, на сколько градусов вы отделяете вас от человека. Остальные «социальные» функции предназначены для публикации. В любом случае в MySQL я не могу сделать это достаточно хорошо для масштабирования. Если у меня есть 100 друзей и каждый человек как 100 друзей, и поэтому, как лучше всего обойтись с этими людьми, я предполагаю графическую базу данных.

Платформа - это кодовый редактор PHP / Mysql для основной БД.

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Расчет расстояния между узлами очень похож на графическую базу данных.OrientDB выглядит очень впечатляюще, лично я поиграл с Neo4j , на который вы могли бы взглянуть.

Чтобы дать окончательный ответ, вам придется предоставить больше ваших требований.

0 голосов
/ 18 мая 2011

Звучит как отличный сценарий для RDF баз данных - тройные магазины AKA. Если ваши данные о связи людей ... почему бы вам не смоделировать их с помощью словаря FOAF в RDF. Тогда вы можете использовать один из множества тройных магазинов. Если вам нужна масштабируемость, я рекомендую 4store - распределенная база данных RDF, написанная на C. 4store будет распределять ваши данные в кластере, и вы сможете запросить их с помощью SPARQL

Определенно вариант для рассмотрения в вашем случае.

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