Это совершенно незнакомая область для меня. может ли кто-нибудь указать мне в правильном направлении, как создать социальный граф и лучший способ его представлять? Я создаю веб-сайт в сети C#/asp и вам нужно создать функцию «друзей» ... этот тип вещей обычно хранится полностью в БД? если да, то как?как вы создаете социальный граф?
ответ
Ваш вопрос довольно открытый. Для рисования сложных графиков один из моих любимых инструментов - Graphviz. Graphviz может работать с направленными или неориентированными графами. Он может принимать входные данные как простой текстовый файл, а затем выводить график в различных форматах.
Является ли ваша главная проблема покраской картины социальной сети или хранением данных?
Для хранения можно рассмотреть a graph database. Однако наиболее зрелым продуктом в этом пространстве является neo4j, который имеет название, написанное на Java. Это SO discussion list некоторые альтернативные подходы для .Net.
редактировать
Вы еще не будучи ясно, нужно ли вам дизайн советы или примеры кода. Эндрю Симер написал статью из двух частей, которая описывает the issues, а затем представляет some ASP.net code. Я не думаю, что это каким-то образом полное решение, но оно может дать вам направление в правильном направлении.
в основном мне нужно делать то, что вы делаете на facebook. мне нужно иметь возможность подружиться, а затем увидеть список друзей, щелкнуть по ним, чтобы просмотреть их профили и т. д. Я просто не знаю, как лучше хранить эти данные и как их получить/манипулировать. – ijjo
Первый вопрос: сколько трафика ожидается для вашего сайта? Вам нужно оптимизировать «список друзей» для чтения ... или написать? Если запись может быть в конечном итоге последовательной ... затем оптимизируйте читаемый сайт (вероятно, более высокий объем трафика). Также подумайте о структуре данных. Вы можете хранить плоскую копию данных для определенного представления, уже сшитого для пользователя ... денормализованных данных. Дай мне знать, смогу ли я помочь. –
@AndrewSiemer - ваше предложение о помощи очень мило. Однако, поскольку вопрос более четырех лет, это также более чем несколько поздно. – APC
Таким образом, ваша проблема связана прежде всего с проблемой хранения данных и как хранить и извлекать ребра на вашем графике. Применяя некоторые простые графы к вашей проблеме:
Узел/Вершина: в вашем случае каждый человек будет представлять собой узел.
Edge/Link: Связь между узлами, в данном случае «друзьями», создаст неориентированный край между двумя узлами.
Таким образом, вам необходимо будет сохранить структуру данных в вашей БД, которая позволит вам разрешить граничные отношения между друзьями.
Некоторая полезная информация, вероятно, может быть найдено в этом вопросе:
challenge-how-to-implement-an-algorithm-for-six-degree-of-separation
Кроме того, что вы должны учитывать при принятии решения о том, как сохранить свой список края, сколько края вы думаете, что ваш сайт будет генерировать. Вероятно, это повлияет на механизм хранения, который вы решаете.
Надеемся, что эти указатели помогают.
- 1. Как вы это создаете?
- 2. Как вы создаете Rakefile?
- 3. Как вы создаете MouseEvent?
- 4. Показать социальный граф с D3 силы макете
- 5. Как вы создаете двухмерную коллекцию?
- 6. Как вы создаете индексатор торрентов?
- 7. Как вы создаете коллекцию GenuineVariableDescriptors?
- 8. как вы создаете скрипт cron?
- 9. как вы создаете большой массив?
- 10. Как вы создаете свои фабрики?
- 11. Как вы создаете AFRAME кнопку
- 12. Как вы создаете закрытую воронку?
- 13. Как вы создаете плагин jQuery?
- 14. Как вы создаете PHP-код?
- 15. Как вы создаете последовательность modalViewControllers?
- 16. Как вы создаете английское слово?
- 17. Как вы создаете RSS-канал?
- 18. Как вы создаете подобные эффекты?
- 19. Как вы создаете большой массив?
- 20. Вы создаете словарь данных?
- 21. Как вы создаете приложение, такое как Firebase?
- 22. Социальный анализ граф. 60 ГБ и 100 млн. Узлов
- 23. Учитывая набор вершин, как вы создаете сильносвязный направленный граф с почти минимальным количеством ребер?
- 24. Как вы создаете внешний svg с css
- 25. Как вы динамически создаете входы в Elm?
- 26. Как вы создаете Связанные списки связанных списков
- 27. Как вы создаете вложенные методы в PHP?
- 28. Как вы создаете переменные в цикле?
- 29. Как вы создаете хороший дизайн веб-сайта
- 30. Как вы создаете SimpleBeanInfo в 2016 году?
Вы спрашиваете, как вы можете визуально визуализировать отношения между друзьями в графической форме на своем веб-сайте? Более подробная информация о вашей проблеме даст более точный ответ. –