настройка списка друзей в mysql

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

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

friend1 friend2 AB BA AC BD CB DB 

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

 SELECT friend2 FROM friends WHERE friend1 = 'B' 

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

 friend1 friend2 AB AC BD 

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

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

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

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

  • Выбор друзей

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

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

пример

Таблица пользователей

 ID Username 1 Bob 2 Jim 3 Alice 

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

 user1 user2 1 2 2 3 

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

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

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

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

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

В основном есть как user1, так и user2 в одном столбце.