#php #mysql
#php #mysql
Вопрос:
Я создаю приложение, в котором пользователи могут комментировать множество вещей, таких как сообщения в блогах, загруженные песни, картинки и так далее.
Лучше ли хранить ВСЕ комментарии в одной таблице, где у вас есть столбец, указывающий на то, что комментарий был опубликован, например, блог, картинка и т.д.
Или лучше хранить их в отдельных таблицах, таких как таблица «blogcomments«, таблица «picturecomments» и т.д.? Скажем, для сайта с более чем 10000 пользователями?
Спасибо
Ответ №1:
Если во всех комментариях хранятся одни и те же данные (например, содержимое комментария, пользователь, опубликовавший комментарий, и т.д.), То для публикации имело бы смысл сохранить их все в одной таблице. Если у них разные форматы, то поместите их в отдельные таблицы.
Комментарии:
1. Да, все они имеют одинаковый формат. Например, «комментарий», «идентификатор пользователя», «идентификатор владельца» и так далее. Хорошо, тогда я перейду к первому решению и сохраню их все в одной таблице. Спасибо за быстрый ответ 🙂 Оценен по достоинству!
2. Еще один вопрос. Каков наилучший подход к выполнению этого тогда? Скрытое поле ввода, например, с «типом»? Или, может быть, проверьте, на какой странице находится пользователь, и добавьте соответствующий тип для этого?
3. @George Я думаю, стоит добавить столбец «тип» и иметь идентификатор ссылки в другую таблицу. Таблица может быть похожа на comment_type (Id, Name), где название — Фотография, видео, блог и так далее.
4. Да, это хорошая идея для экономии места 🙂 Но как мне передать эту информацию, скажем, из блога, когда пользователь делает комментарий? Как увидеть, где пользователь оставил комментарий? откуда берется идентификатор ссылки из вашего примера?
Ответ №2:
На мой взгляд, первый подход является лучшим. Фактически, таким образом, вы можете добавлять (или удалять) типы комментариев (я имею в виду комментарии к публикации, комментарии в блоге и так далее), Не добавляя и не удаляя каждый раз таблицу. Я думаю, что это более масштабируемое решение.