SQL

Как правильно организовать базу данных?

Допустим, что есть сайт с товарами. Товары делятся на категории. У каждого товара есть собственный рейтинг и отзывы. Для категории, страницы товара, рейтинга, отзывов и ещё каких-то возможных вкладок надо создавать отдельную таблицу? И можно ли связать какой-то конкретный товар, который находится в отдельной таблице "products" связать с таблицей рейтинга? Чтобы данный рейтинг был напрямую связан с текущим товаром. Правильный ли у меня ход мыслей насчет создание БД?
>Для категории, страницы товара, рейтинга, отзывов и ещё каких-то возможных вкладок надо создавать отдельную таблицу?
Да, крайне желательно. Это называется нормализацией данных.

>И можно ли связать какой-то конкретный товар, который находится в отдельной таблице "products" связать с таблицей рейтинга?
Разумеется.

> Чтобы данный рейтинг был напрямую связан с текущим товаром.
Э-э-э-э, что значит "напрямую"? Рейтинг (вернее, история оценок рейтинга) должен быть связан с товаром по ключу в базе, а "напрямую" это или "накривую" - мне судить сложно.

>Правильный ли у меня ход мыслей насчет создание БД?
В целом неплохо.
ДД
Денис Дорошук
91 784
Лучший ответ
Правильный ход мыслей - взять учебник SQL (не самоучитель в интернете и не видеокурсы, а нормальный учебник, выпущенный авторитетным издательством) и внимательно его изучить. Особенно в той части, которая касается нормализации и нормальных форм (для большинства задач хватает третьей нормальной формы).

Технологии хранения данных в реляционных СУБД давным-давно отработаны. И не надо пытаться подменять знания велосипедами.
AM
Abdunaimov Manuchehr
94 779
Прочитайте про третью нормальную форму баз данных. Каждая сущность в отдельной таблице, связь по индексам и уникальным ключам. Если рейтинг относится к нескольким товарам сразу - для него нужна отдельная таблица. Или если рейтинг должен выбираться из справочника. А если это просто число - лучше сделать поле в таблице товара, чтобы не плодить сущности без необходимости.
не забудь про шифрование данных, не храни их в открытом виде
Валерий Загуляев Бессмысленное занятие. Если СУБД имеет доступ к данным (а иначе зачем она нужна) - доступ получит любой, кто доберется до файлов СУБД, потому как ключи шифрования там тоже будут. Вот защитить сервер БД грамотной настройкой прав доступа от несанкционированного доступа к данным по сети просто необходимо.