настройка списка друзей в mysql - PullRequest
2 голосов
/ 13 января 2011

Я хочу сделать список друзей в моей онлайн-игре.Я не уверен, как его настроить или с чего начать.Часть добавления друзей и принятия друзей, с которой я могу справиться, но я не знаю, как настроить ее в mysql и php.Список пользователей (друзей), подключенных к каждому пользователю или что-то?

Ответы [ 4 ]

9 голосов
/ 13 января 2011

Если ваши дружеские отношения симметричны, вы можете хранить каждую пару в отдельной записи:

friend1 friend2
A       B
B       A
A       C
B       D
C       B
D       B

и отправьте запрос всем друзьям B следующим образом:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

или сохраните пользователя с наименьшим id в первом поле и с наибольшим id во втором:

friend1  friend2
A        B
A        C
B        D

и запросить друзей B вот так:

SELECT  friend1
FROM    friends
WHERE   friend2 = 'B'
UNION ALL
SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

Первый вариант немного более эффективен в MySQL, и это единственный вариант, если ваши дружеские отношения не симметричны (как в LiveJournal)

См. Эту статью:

5 голосов
/ 13 января 2011

Дружба - это, по сути, взаимоотношения между двумя людьми.В терминах базы данных это отношение «многие ко многим» между двумя пользователями.

Итак, вам нужна таблица ссылок, которая содержит ссылки на двух пользователей по идентификатору.* Таблица пользователей

ID    Username
1     Bob
2     Jim
3     Alice

Таблица друзей

user1    user2
1        2
2        3

Это сделает друзей Боба, Джима и Джима друзьями с Алисой.

1 голос
/ 13 января 2011

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

Дизайн базы данных Facebook?

0 голосов
/ 29 мая 2013

Альтернативой может быть установка столбца A следующим образом: $ checkfriend = (($ friend1 $ friend2) || ($ friend2 $ friend1))

Столбец B следующим образом: (дружба принята или дружба отклонена) по выбору пользователя

В основном столбцы user1 и user2 находятся в одном столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...