как вы создаете социальный график? - PullRequest
2 голосов
/ 08 февраля 2010

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

Ответы [ 3 ]

3 голосов
/ 08 февраля 2010

Ваша главная задача - нарисовать картинку в социальной сети или сохранить данные?

Для хранения вы можете рассмотреть базу данных графов . Тем не менее, наиболее зрелым продуктом в этом пространстве является neo4j, название которого написано на Java. Это SO дискуссионный список некоторые альтернативные подходы для .Net.

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

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

1 голос
/ 08 февраля 2010

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

0 голосов
/ 08 февраля 2010

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

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

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

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

В этом вопросе можно найти полезную информацию:

вызов, как к орудию-ан-алгоритма-в-шесть-степени разделения

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

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

...