Имея таблицу пользователей, любой пользователь может создать дружбу с другим пользователем. Таким образом,
UserTable
-----------
User1
User2
User3
FriendshipTable
-----------
User1, User3
User2, User5
User3, User5
User5, User9
Часть 1: я ищу способ получить полный набор друзей, друзей друзей и т. Д. Например, User1 вернул бы: User1, User5, User2, User9
Часть 2: Было бы полезно, но не обязательно, если бы я мог получить размер самой большой сети людей
С другой стороны, есть ли лучший способ сохранить связь между пользователями, которая облегчила бы получение необходимой мне информации? Как, например, создание и объединение списка групп дружбы по мере создания дружбы?
Я нашел несколько подобных постов здесь, но ни один из них, похоже, не следует за сетью после первого уровня глубины.
Я думаю, что есть решения, но я даже не знаю, что искать.