0

Я искал весь стек stackoverflow, но я не могу найти ответ на свою проблему.Схема базы данных для нескольких категорий продукта с различными атрибутами

Эта проблема связана с веб-сайта электронной коммерции

Вот проблема:

продукт из определенной категории имеет определенный набор атрибутов. Например, компьютер имеет Ram, CPU, размер экрана ... и т. Д. и рубашка имеет размер, цвет ... Etc

Есть атрибуты, общие для всех продуктов (например, цена и запас и т. Д.).

Но как мне управлять атрибутами, специфичными для каждого продукта в его категории?

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

Какой способ был бы «лучшей практикой»?

Вот пример того, что я сделал:

продукт (idproduct, наименование, цена, ... (другие атрибуты))
категории (idcat, имя, idParentCategory)
ParentCategory (idPcat)
ПК (IDPC, ОЗУ, процессор, screenSize..etc)
рубашки (idShirt, размер, цвет)
Брюки (idPant, талия, цвет)

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

Есть ли лучшее решение?

Спасибо за вашу помощь, заранее

+0

Следуйте за тегами EAV для аналогичных обсуждений –

ответ

0

Есть признаки, общие для всех продуктов (например, цены и акции и т.д.).

Создать таблицу для этого с соответствующей реальной жизни ключа, например EAN (рассмотреть возможность использования данных третьей стороны источник для этого).

Но как мне удается атрибуты, специфичные для каждого продукта в пределах своей категории? ... если бы я хотел продать книги на моем сайте, я должен был бы добавить таблицу книг

Да и атрибуты, характерные для книг, будут доступны здесь. Не забудьте создать ссылку на ваши таблицы атрибутов, общих для всех продуктов, например. убедитесь, что EAN соответствует действию ISBN. Также учтите, что некоторые атрибуты книг могут быть общими для других подобных продуктов, поэтому у вас могут быть различные подтипы, смоделированные в вашей базе данных.

0

Один из способов решить ваши проблемы, если я хорошо понял ваш вопрос, является отображение атрибутов в таблице категорий, так как они категории специфичны и не вещь специфичны. Таким образом, вы бы: продукт (idproduct, название, цена ... (категория значения атрибутов)) категории (idcat, имя, idParentCategory (категория атрибутов))

и картировать продукцию их категории у вас будет только таблица с двумя иностранными PK: productOfCategory (idprodFK, idcatFK)

Это позволит вам сопоставлять продукты с соответствующими категориями и проверять ценности продуктов на атрибуты категорий.

Или вы оставите массив значений в отношении productOfCategory. Например, для продукта, который является компьютером и, следовательно, компьютерной категории, вы должны иметь productOfCategory (ComputerProductID, ComputersCategoryID, «3,0 ГГц, 6 ГБ RAM, .....«)

+0

благодарим вас за ваше время, я действительно ценю его. – programmer

+0

Что вы подразумеваете, добавив в таблицу продуктов атрибуты catergory? пожалуйста, дайте мне пример – programmer

+0

У вас есть два варианта, как я его вижу. Либо вы оставите массив значений в записи продукта, либо оставите массив значений в отношении productOfCategory. Например, для продукта, который является компьютером и, следовательно, компьютерной категории, вы должны иметь productOfCategory (ComputerProductID, ComputersCategoryID, «3.0GHz, 6GB Ram, .....») – ricol070

 Смежные вопросы

  • Нет связанных вопросов^_^