дизайн базы данных для сайта электронной коммерции - PullRequest
0 голосов
/ 13 марта 2012

Я создаю веб-сайт электронной коммерции, и меня немного смущает таблица производителей. у меня есть таблица категорий, в которой предположим, что я взял в качестве примера 2 значения «мобильные телефоны и ipods», а таблица подкатегорий содержит значение категории и подкатегории. Теперь подкатегория имеет 2 значения, такие как «gsm» и «cdma», и в соответствии со значением их категории «1» из таблицы категорий. значение "мобильные телефоны". Теперь, как мне составить таблицу производителей, согласно которой одни и те же бренды будут использоваться многими категориями. Может ли кто-нибудь помочь мне в создании аккуратного стола производителей. у меня была такая идея, что я бы вписал название категории в таблицу производителей и поставил значение 1 для использованных 0 для неиспользованных

Таблица производителей:

id  manufacturer_name  
1   Apple              
2   Htc                

Категория

id  item_category
1   Mobile Phones
2   Ipods

Подкатегория

id  item_category  Sub Category
1   1              Gsm
2   1              Cdma

мой стол производителей IDEA

id  manufacturer_name  Mobile Phones    Ipod's
1   Apple                   1             1
2   Htc                     1             0

идея кажется хорошей, но я действительно не знаю, есть ли лучшее решение. В случае очень большого числа категорий предполагается, что имеется более 30 категорий, тогда невозможно записать каждое имя категории в таблице производителей и установить для них значение 1 или 0. Кто-нибудь может предложить мне лучшую идею ???

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Вместо вашей идеи создайте таблицу factory_category_mapping, которая соединяет одно с другим следующим образом:

manufacturer_id  category_id
1                1
1                2
2                1

Таким образом, каждая строка является буквально отображением между производителем и категорией.

В этой таблице может быть составной ключ и factory_id, и category_id, что не позволит вам дважды сопоставить производителя с одной и той же категорией.

Надеюсь, это поможет.

Чтобы ответить на комментарий, 5Изготовитель с идентификатором category_id, равным 1, будет выглядеть так:

manufacturer_id  category_id
10               1
11               1
12               1
13               1
14               1
0 голосов
/ 13 марта 2012

Вам необходимо добавить таблицу продуктов.Затем свяжите каждый продукт с категорией / подкатегорией и свяжите производителей с продуктами, которые они производят, со многими во многих отношениях.

Manufacturer
- ManufacturerID
- ManufacturerName
- etc..

Product
- ProductID
- ProductName
- etc...

Manufacturer_Product
- ManufacturerID
- ProductID


select m.ManufacturerName, p.ProductName
from dbo.Manufacturer m
join dbo.Manufacturer_Product mp on mp.ManufacturerID = m.ManufacturerID
join dbo.Product p on p.ProductID = mp.ProductID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...