Здравствуйте Столкнулся с вопросом из разряда "как грамотнее" Допустим, что есть посты (форум, гостевая книга, комментарии) Соответсвтенно в БД для каждого поста хранится айдишник автора. До этого момента вытягивал из бд все что нужно примерно вот так: SELECT * FROM posts LEFT JOIN user ON post_author = user_id Соответственно получал для каждого поста и инфу о пользователе, которая нужна для вывода. Но дело в том, что с таким подходом получается так, что: 1. Для постов с одним автором информация дублируется лишние разы, что, как мне кажется, не очень хорошо 2. Если выводим посты циклом с fetch_assoc, то возникает необходимость передавать инфу о пользователе в какой-либо класс, который ее обработает для вывода (например, отдаст ссылку с иконкой пользователя или его соц. сети, итп итп). Соответсвенно в класс передается массив с полями-ключами пользователя. Но в этом же массиве есть еще информация о посте. Кажется, получается слишком жирно и избыточно. Может быть будет грамотнее как-либо отделять данные постов от данных пользователей и сопоставлять их друг-другу уже в скрипте на выводе?
можно загрузить все посты, выбрать айдишники авторов, сделать array_unique и выбрать авторов `id` IN(эти айдишники)
igordata Вот! Вот это то, о чем я и хотел спросить. Но оправданно ли такое уложнение? И чем чревато? Потому как получится двумерный массив вида: Код (Text): [0] => array ( [user_id] = 1, .... ) [1] => array ( [user_id] = 2, .... ) .... Соответственно еще надо будет для каждого поста крутить этот массив в цикле и искать автора по айдишнику