chelkaz
@chelkaz

Есть проверенная структура, для хранения типа: Мультиблогинга?

Есть 500 000 названий тем (это основа блога)
По каждой теме, пользователь может создавать свой пост.
Под каждым постом можно оставлять комментарии.
-------------------
Открывая страницу с названием темы, например id 1234567
Мне нужно получить все посты для нее + количество комментариев для каждого поста и пользователя поста.
Открывая пост, нужно получить все комментарии + пользователя.
-------------------
У поста обязательные поля - название, текст, тип поста.
Вроде бы ничего сложного нет и можно сделать разными способами. Но вот как потом?
Ведь 500 000 тем, допустим за год под каждой 1000 постов, а под каждым постом 100 комментов.
-------------------
Поэтому вопрос:
Может кто работал с большими данными, как лучше в такой ситуации сделать связи таблиц?
Нужно ни таблицу пост разделить на две? В одной хранить названия и все связи, а в другой текста, так как они могут быть большими. Какая логическая схема будет правильной?
Как пример, это группы в VK, группы это темы, у тем есть посты, а у постов комментарии.
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ничего особо сложного в этой схеме нет, обычная связь один-ко-многим. В посте указывается id темы, в комментарии - id поста. Если комментарии древовидные, то ещё добавляются поля для nested set, тогда удобно выбирать целиком ветки комментариев.
Для того, чтобы не считать каждый раз количество комментариев создаётся поле, увеличивающееся триггером при добавлении комментария.
Ну и, естественно, нужны правильно составленные индексы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы