2010-02-07 5 views
2

Это совершенно незнакомая область для меня. может ли кто-нибудь указать мне в правильном направлении, как создать социальный граф и лучший способ его представлять? Я создаю веб-сайт в сети C#/asp и вам нужно создать функцию «друзей» ... этот тип вещей обычно хранится полностью в БД? если да, то как?как вы создаете социальный граф?

+1

Вы спрашиваете, как вы можете визуально визуализировать отношения между друзьями в графической форме на своем веб-сайте? Более подробная информация о вашей проблеме даст более точный ответ. –

ответ

1

Ваш вопрос довольно открытый. Для рисования сложных графиков один из моих любимых инструментов - Graphviz. Graphviz может работать с направленными или неориентированными графами. Он может принимать входные данные как простой текстовый файл, а затем выводить график в различных форматах.

3

Является ли ваша главная проблема покраской картины социальной сети или хранением данных?

Для хранения можно рассмотреть a graph database. Однако наиболее зрелым продуктом в этом пространстве является neo4j, который имеет название, написанное на Java. Это SO discussion list некоторые альтернативные подходы для .Net.

редактировать

Вы еще не будучи ясно, нужно ли вам дизайн советы или примеры кода. Эндрю Симер написал статью из двух частей, которая описывает the issues, а затем представляет some ASP.net code. Я не думаю, что это каким-то образом полное решение, но оно может дать вам направление в правильном направлении.

+0

в основном мне нужно делать то, что вы делаете на facebook. мне нужно иметь возможность подружиться, а затем увидеть список друзей, щелкнуть по ним, чтобы просмотреть их профили и т. д. Я просто не знаю, как лучше хранить эти данные и как их получить/манипулировать. – ijjo

+0

Первый вопрос: сколько трафика ожидается для вашего сайта? Вам нужно оптимизировать «список друзей» для чтения ... или написать? Если запись может быть в конечном итоге последовательной ... затем оптимизируйте читаемый сайт (вероятно, более высокий объем трафика). Также подумайте о структуре данных. Вы можете хранить плоскую копию данных для определенного представления, уже сшитого для пользователя ... денормализованных данных. Дай мне знать, смогу ли я помочь. –

+1

@AndrewSiemer - ваше предложение о помощи очень мило. Однако, поскольку вопрос более четырех лет, это также более чем несколько поздно. – APC

0

Таким образом, ваша проблема связана прежде всего с проблемой хранения данных и как хранить и извлекать ребра на вашем графике. Применяя некоторые простые графы к вашей проблеме:

  • Узел/Вершина: в вашем случае каждый человек будет представлять собой узел.

  • Edge/Link: Связь между узлами, в данном случае «друзьями», создаст неориентированный край между двумя узлами.

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

Некоторая полезная информация, вероятно, может быть найдено в этом вопросе:

challenge-how-to-implement-an-algorithm-for-six-degree-of-separation

Кроме того, что вы должны учитывать при принятии решения о том, как сохранить свой список края, сколько края вы думаете, что ваш сайт будет генерировать. Вероятно, это повлияет на механизм хранения, который вы решаете.

Надеемся, что эти указатели помогают.

Смежные вопросы