







|
MySQL.RU - Webboard
Вернуться
Хитрый запрос (mcfly) 24/04/2009 - 11:28:25
Re: Хитрый запрос (Diter) 25/04/2009 - 19:30:13
Re: Хитрый запрос (mcfly) 27/04/2009 - 09:07:11
Re: Хитрый запрос (Diter) 27/04/2009 - 18:05:46
Re: Хитрый запрос (igorsia) 30/04/2009 - 11:35:08
> Original message text:
> From: mcfly - 24/04/2009 - 11:28:25
> Subject:Хитрый запрос
> -----------------
> Имеем две таблицы users и friends. В users хранятся данные пользователей (id, name). Во friends (id, user1_id, user2_id) хранятся отношения пользователей, которые находятся в друзьях. user1_id - это пользователь который подал запрос на добавление, а user2_id - это кто разрешил.
>
> Теперь вопрос: Каким образом подать запрос, чтобы получить список друзей (данных из users) пользователя по ид пользователя.
>
> Заморочка в том, что ид пользователя может быть как в поле user1_id, так и в поле user2_id :)
>
> Заранее благодарствую :)
>
From: mcfly - 27/04/2009 - 09:07:11
Subject:Хитрый запрос
-----------------
Ваша структура отличается от моей тем, что пользователь добавляется в таблицу друзей сразу, после отправки запроса. А в моем случае, запросы на добавление в друзья хранятся в другой таблице.
Представим, что пользователь 1 подал заявку на добавление в друзья пользователю 5. 1 отправляет запрос для 5 (запрос кладется в другую таблицу), далее 5 подтверждает дружбу, запрос из таблицы запросов удаляется и пользователи добавляются в таблицу friends следующим образом: user1_id = 1, user2_id = 5. Такое хранение удобно тем, что если указывать user_id и friend_id (указываем друга для юзера), то надо будет указывать друга как для пользователя 1, так и для пользователя 5. То есть:
id user_id friend_id
1 1 5
2 5 1
А в моем случае, мы бы просто указали отношение друзей, то есть первый пользователь в отношении = 1, а другой 5:
id user1_id user2_id
1 1 5
Получается в два раза меньше записей в бд
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35508
|
|