@Niko_Lay

Как лучше хранить таблицу комментариев-отзывов в MySQL?

Доброго дня суток.
Пишу небольшую CMS в которой будет возможность по товару оставлять отзывы-вопросы-ответы.

Предполагается, функционал:
- Лента комментариев внутри товара может содержать как отзывы, так и и вопросы (идут одним списком по хронологии);
- Также по каждому отзыву или вопросу может быть ветка ответов (выводиться все под родительским отзывом/вопросом, по хронологии);
- Все трое отзыв / вопрос / ответ содержат поле "текст" (до 3000 символов);
- В то время как только у отзыва есть дополнительные поля : "оценка товара"; "время использования товара"; "достоинства" (до 3000 символов); "недостатки" (до 3000 символов)

Изначально сделал все в одной таблице, но сейчас начал смущаться, что в случае хранения записей в БД как вопрос / ответ "гуляют" пустые поля ("оценка товара"; "время использования товара"; "достоинства" ; "недостатки"). Предпологается, что ответов/ вопросов будет больше, чем отзывов

Вопрос: Стоит ли дробить таблицу на две, т.е. выносить поля, которые касаются только отзыва ("оценка товара"; "время использования товара"; "достоинства" ; "недостатки") во 2-ую таблицу, а потом при выводе отзывов/вопросов JOIN-нить данные отзыва?
  • Вопрос задан
  • 999 просмотров
Решения вопроса 1
@Psaproxy
Web-разработчик
Однозначно - стоит.
Обычная практика архитектуры таблицы с большим количеством параметров:
  • главная таблица - id и минимум важных данных
  • таблица параметров - key/value подобная структура

Чем лаконичней и меньше структура таблицы, тем лучше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Согласен с тем что лучше привязку вынести в отдельную таблицу, в первой хранить общие данные, а данные под отдельную задачу вынести в отдельную таблицу, это позволит разделить логику и поддерживать приложение в дальнейшем. Например добавить к коментариям оценку, тоже вынесите в отдельную таблицу, другими словами сможете наращивать логику приложения и при этом не запустите его.
Ответ написан
Комментировать
Amstor
@Amstor
Работаю в wap-e
Поддерживаю посты выше
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы