В моей фиктивной социальной сети я разрабатываю для изучения серверных стратегий... Сейчас я работаю над реализацией функции, похожей на ретвит.... у пользователя будет возможность сделать репост существующего сообщения, а также написать свой собственный текст при репосте. Это значит, что это будет то же самое, что и новый пост, но со ссылкой на другой пост. В моей таблице сообщений базы данных я добавил столбец:
Код: Выделить всё
repost_id -> DEFAULT NULL (NON NULL means this is a repost).
Когда я извлекаю ленту... я делаю следующее:
- Извлекаю сообщения
- Просматриваю сообщения в моем PHP-скрипте и смотрю, не равен ли repost_id нулю... затем извлекаю ссылку на сообщение по столбцу repost_id
/>
Я считаю, что это не лучший способ сделать это... потому что, если я извлеку 50 сообщений в ленте и будет 10 репостов... то всего я выполняю 11 запросов. (1 для извлечения фида и 10 для извлечения репостов).
Пожалуйста, предложите способ извлечения данных repost_id в том же SQL-запросе, который я использую для извлечения фида. Я не могу создать запрос.
Запрос на получение фида на данный момент очень прост
Код: Выделить всё
SELECT p.id,p.short_text,p.post_dt FROM `post` p ORDER BY p.post_dt DESC LIMIT 0,50
Как я могу проверить в том же запросе, что если
p.repost_id НЕ NULL, то получить данные для сообщения, на которое ссылается
p.repost_id?
Я сейчас не собираюсь усложнять такие вопросы, как «репост репоста». Просто прямой репост поста.
Подробнее здесь:
https://stackoverflow.com/questions/797 ... ke-feature