Я пишу основную систему форумов для моего сайта с использованием MySQL. Мне нужен способ отслеживать не только сообщения, но и ответы TO сообщений. Поскольку в каждом сообщении может быть только ONE родитель, но в конечном итоге может быть MULTIPLE детей, я думаю, мне нужны две таблицы. Первая таблица содержит как минимум заголовки, тела и родителей каждого сообщения. Вторая таблица содержит только ссылку на РОДИТЕЛЕЙ сообщений и их соответствующие ДЕТИ , вот так:
Posts Table
ID | PARENT | TITLE | POST
1 | | Msg 1 | Body 1
2 | | Msg 2 | Body 2
3 | | Msg 3 | Body 3
4 | 2 | Msg 4 | Body 4
5 | 1 | Msg 5 | Body 5
6 | | Msg 6 | Body 6
7 | | Msg 7 | Body 7
8 | 5 | Msg 8 | Body 8
9 | | Msg 9 | Body 9
10 | 1 | Msg 10 | Body 10
11 | 1 | Msg 11 | Body 11
12 | 2 | Msg 12 | Body 12
Children Table
ID | PARENT | CHILDREN
1 | 2 | 4
2 | 1 | 5
3 | 5 | 8
4 | 1 | 10
5 | 1 | 11
6 | 2 | 12
В этом примере Сообщение 1 имеет 3 детей: 5, 10 и 11. Сообщение 2 имеет 2 детей: 4 и 12. И т. Д.
Вооружившись этой информацией, я пытаюсь найти лучший способ определить дочерних элементов подмножества из моего списка сообщений (скажем, сообщения с 5 по 10)? Позволит ли соединение какого-нибудь типа одному запросу получить родителей и любых соответствующих детей? Или мне лучше выполнять отдельные запросы к каждому родительскому сообщению, чтобы определить его потомков?
Я пытаюсь разобраться в JOIN, и это чертовски непонятно. Извините, если это основной материал, но заранее спасибо.