Как лучше спроектировать БД (условия ниже)?

Статус
В этой теме нельзя размещать новые ответы.

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
Необходимо сделать cms для сайта - магазина. Сейчас используется трехуровневое меню и следующий, четвертый уровень это описание конкретного товара
Код:
ВАЗ
    2108
    2109
    21099
    2110
          Бампер передний
          Капот
    2111
    2112
ГАЗ
Проблема в том, что некоторые товары принадлежат сразу нескольким позициям сайта: НАпример есть Бампер передний. Он может сразу принадлежать ваз 2108 и 2109 и 21099. Как лучше всего сделать привязку сразу к трем товарам, чтобы не хранить в БД излишки данных. Можно конечно тупо создать три разных странички. Что скажете?:)
 
Создать промежуточную таблицу, в ней хранить соответствия многие-ко-многим.
Например, таблицу PartToCars, в ней поля
id
idCar - идентификатор модели
idPart - идентификатор запчасти

Соответственно, для бампера из описания будут 3 строки.
 
Я обычно делаю поле типа char или text, и через запятую.
 
С учётом того, что пара idCar-idPart уникальна - id нафиг ненужен.

Возможно и так, зависит от функционала. Я бы оставил, к примеру, на этот id могут ссылаться из других таблиц, если база более-менее большая.
 
Создать промежуточную таблицу, в ней хранить соответствия многие-ко-многим.
Например, таблицу PartToCars, в ней поля
id
idCar - идентификатор модели
idPart - идентификатор запчасти

Соответственно, для бампера из описания будут 3 строки.

В MsSQL такое решалось просто.
А вот с MySQL столкнулся с такой задачей первый раз. Решил тоже через промежуточную таблицу. И тоже убрал id, т.к. он избыточен, данные итак уникальны.
 
Сейчас используется трехуровневое меню

Я бы не ограничивал количество уровней. И сделал в таблице с разделами столбец "Id родителя" т.е. тот раздел в который входит данный. И тогда меню будет без ограничений по вложенности.
 
могу посоветовать удобную софтину для проектирования - DBDesigner 4 hxxp://www.fabforce.net/dbdesigner4/
Я в ней уже пару лет рисую базы
 
убрал id, т.к. он избыточен, данные итак уникальны.

Мне тоже первоначально показалось, что id избыточен. И я делал ссылки в других таблица на уникальные данные, но не на id. В результате при обновлении какого-нибудь меню, пришлось обновлять все подменюшки. Переделал на работу с id.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху