структура mysql для комментариев и ответов на комментарии
Я уже давно об этом думаю, мне нужен способ добавить ответы на комментарии в базе данных, но я не уверен, что делать дальше.
Это моя таблица комментариев (мало что говорит, но начало положено):
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`comment` text,
`user_id` int(12) DEFAULT NULL,
`topic_id` int(12) NOT NULL,
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `topic_id` (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;
и вот мой текущий запрос:
SELECT c.id, c.comment, c.user_id, u.username, u.photo
FROM (comments c)
JOIN users u ON c.user_id = u.id
WHERE c.topic_id = 9
Одним из вариантов будет создание новой таблицы с именем & quot; comment_replies & quot; но я не уверен, смогу ли я выбрать все комментарии и ответы на комментарии в одном запросе, и если я добавлю новый столбец с именем & quot; ответить & quot; Я не уверен, как отсортировать их, чтобы получить каждый комментарий с каждым ответом.
Я хотел бы получить несколько советов о том, как справиться с этим.
Edit:
Ниже приведены ответы о добавлении parent_comment_id в массив такого типа из 1 комментария и 2 ответов:
array(2) {
[0]=>
object(stdClass)#17 (7) {
["id"]=>
string(2) "26"
["comment"]=>
string(36) "adding a comment from the admin page"
["user_id"]=>
string(2) "16"
["ts"]=>
string(10) "1249869350"
["username"]=>
string(5) "Admin"
["photo"]=>
string(13) "gravatar2.png"
["reply"]=>
string(23) "There is no admin page!"
}
[1]=>
object(stdClass)#18 (7) {
["id"]=>
string(2) "26"
["comment"]=>
string(36) "adding a comment from the admin page"
["user_id"]=>
string(2) "16"
["ts"]=>
string(10) "1249869350"
["username"]=>
string(5) "Admin"
["photo"]=>
string(13) "gravatar2.png"
["reply"]=>
string(13) "Yes there is!"
}
}
Как мне обработать этот массив для работы с ним, можно ли отделить комментарий от ответов?