Как вы создаете социальный график?

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

3 ответа

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

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

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

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

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

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

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

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

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

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

Задача-хау в реализации-ан-алгоритм-в-шесть-степени разделения

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

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

Другие вопросы по тегам