Вложенная система многопоточных комментариев - несколько корней? - PullRequest
0 голосов
/ 26 ноября 2009

Я внедряю систему многопоточных комментариев для тем, то есть есть тема, а затем добавляются комментарии по каждой теме.

Вложенный набор «кажется» популярным способом, но как мне реализовать корни каждого потока? Например:

  • комментарии могут быть одним массивным вложенным набором. Я могу ошибаться, но кажется, что все будет медленнее, чем одно дерево.

  • комментарии могут иметь одну корневую ветку для каждой темы. Но тогда может показаться, что мне нужно создать пустой корень для каждой темы, а пустые корни кажутся странными.

  • каждый комментарий первого уровня может быть корневым. Это устраняет пустой корень, но кажется, что будет тонна корневых потоков и, скажем, для рендеринга страницы с 50 комментариями первого уровня, мне нужно будет выполнить 50 запросов: S.

Я что-то здесь упускаю, есть ли лучший способ сделать это? Я склоняюсь к пустому корню, но это не совсем верно

Спасибо.

1 Ответ

1 голос
/ 26 ноября 2009

Я думаю, что у вас обычно есть отдельный внешний ключ для «темы владельца» в таблице комментариев, а не скрывается эта информация в структуре вложенного набора. IMO левая / правая пара должны диктовать только вложение / упорядочение в контексте владельца.

Тогда не имеет значения, если у вас есть структура вложенных множеств с одним или несколькими корнями. (FWIW, я использую множественный root.) Вы можете в любом случае получить все комментарии по одной теме в одном запросе.

...