Я создаю сайт сообщества, на котором я добавил функциональность добавления людей в качестве друзей.Отображение друзей из списка друзей
Теперь мои друзья таблица выглядит следующим образом
+----+---------+-------+
| id | ppl_1 | ppl_2 |
+----+---------+-------+
| 1 | 5 | 7 |
| 2 | 13 | 5 |
+----+---------+-------+
id is simply the autoincrement field.
ppl_1 is one user's id
ppl_2 is another user's id
Теперь рассмотрим Я пользователь, идентификатор 5. Я хочу видеть мой список друзей. Как я могу работать, потому что мой идентификатор может быть где угодно между ppl_1
или ppl_2
. Так что я должен запустить 2 запроса для проверки? Это будет плохо, я думаю, учитывая производительность сайта. Или мне нужно что-то делать в одном запросе, чтобы проверить оба пути?
Учитывая $me = $_SESSION['id'] ;
Любой показать мне какой-то свет здесь?
Используя 'UNION', вы можете сделать 2 запроса в одном, где 1-й выбирает друзей в' ppl_1', а второй - друзей в 'ppl_2', т.е. 'SELECT ppl_1 как друг ... UNION ... SELECT ppl_2 как друг ...' – Sean
эта проблема была решена много раз. [sql-join-help-for-friend-list] (http://stackoverflow.com/questions/2203513/sql-join-help-for-friend-list) [как-представить -симметричный-много- -many-relationship] (http://stackoverflow.com/questions/3550093/how-to-represent-symmetric-many-to-many-relationship) [how-should-i-design-a-relationship-table-for -дружество] (http://dba.stackexchange.com/questions/10199/how-should-i-design-a-relationship-table-for-friendship) – abl