У меня есть потребности для моей системы:
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 для основной БД.