Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: какой вариант лучше?
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » какой вариант лучше?

Страниц (1): [1]
 

1. Еугений - 23 Апреля, 2012 - 14:51:06 - перейти к сообщению
например хочу добавить ф-ию добавить в друзья,
1) вариант. создать еще одну таблицу в ней ей будут ячейки - кто добавил, кого добавил, id и т д. вывести список друзей и например заявки будет несложно.
2) вариант. чтобы не нагружать бд созданием таблицы friends, в таблицу users где собс-на список пользователей с паролями логинами и тд добавить столбец друзья. в ней будет массив ваших друзей (их логины или id) и заявки. и чтобы вывести их список, надо преобразовать этот массив в строку для запроса. должно будет получится SELECT * FROM users WHERE id=2 AND id=8 итд...
ЧТо лучше?
И кстати можно ли как нибудь попроще сделать запрос where id=2 and where id=5 and where id=...итд?
2. Viper - 23 Апреля, 2012 - 15:06:41 - перейти к сообщению
2. Можно сериализованный массив либо json в поле типа text тулить. Но не кошерно. Первый вариант лучше имхо.

Еугений пишет:
И кстати можно ли как нибудь попроще сделать запрос where id=2 and where id=5 and where id=...итд?

3. Мелкий - 23 Апреля, 2012 - 15:25:54 - перейти к сообщению
Без сомнений, первый вариант. Со вторым вы утонете, чуть более сложная выборка понадобится - хоть банально "найти взаимных друзей" - всю таблицу перебирать?

При том, поле id нафиг не надо, первичного ключа по кто и кого добавил более чем достаточно. + при необходимости таких выборок индекс по кого и кто добавил (в обратном порядке поля).

 

Powered by ExBB FM 1.0 RC1