Система друзей с MySQL - PullRequest
       3

Система друзей с MySQL

0 голосов
/ 02 мая 2011
//user:
id
name
password

как правильно подружить систему?как должны выглядеть столы друзей?

USERID | FRIENDID
user1id | user2id, user3id
user2id | user1id, user4id, user6id
user3id
user4id | user2id

например точка?

или

USERID | FRIENDIS
user1id | user2id
user1id | user3id
user2id | user1id
user2id | user4id

etc

?спасибо

1 Ответ

4 голосов
/ 02 мая 2011

Таблицы такого типа называются таблицами отношений или ассоциаций.

Таблица, построенная из 2 внешних ключей, для обеспечения связи "многие ко многим".Ваш последний пример - именно то, что вы ищете.Эти разделенные запятыми вещи - это наихудшая практика!

РЕДАКТИРОВАТЬ: Некоторые дополнительные стратегии!

Вы хотите получить как isFriendOf (где пользователь находится в вашем столбце "ДРУЗЬЯ"), так и "hasFriend "(где пользователь находится в вашем столбце" USERID ") и сравните эти два.

isFriendOf = "SELECT USERID FROM associationTable WHERE FRIEND LIKE 'userIamSearchingFor'";
hasFriend = "SELECT FRIEND FROM associationTable WHERE USERID LIKE 'userIamSearchingFor'";

Подробнее?; D

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