Как мне продолжить эту базу данных? (связь характеристик с предопределенными значениями для категорий) - PullRequest
1 голос
/ 02 мая 2020

Я изо всех сил пытаюсь понять, как мне нужно это сделать. Итак, моя проблема: я должен позволить кому-то продавать продукт на веб-сайте. Перед продажей он должен выбрать определенную категорию. Каждая категория имеет различные характеристики, которые могут быть отмечены, и эти характеристики полностью зависят от выбранной категории. Значения этих характеристик предопределены и уже занесены в базу данных.

Теперь у меня вопрос: как мне go узнать об этом? Как связать эти признаки с выбранной категорией и как связать различные количества предопределенных значений с этими указанными c характеристиками?

пример:


категория: клавиатура
характеристики: условие (раскрывающийся список), раскладка клавиатуры (раскрывающийся список), дополнительные параметры (множественный выбор)
условие имеет 3 варианта : новая, как новая, использованная
раскладка клавиатуры имеет 2 варианта: qwerty, azerty
дополнительные опции с несколькими вариантами выбора, 3 варианта: игры клавиатура, беспроводная, 60%


второй пример:


категория: ноутбук
характеристики: условие (выпадающий), refre sh ставка (выпадающий)
условие имеет 3 варианта: новый, как новый, используемый
refre sh тариф имеет 5 опций: 50 Гц, 60 Гц, 120 Гц, 144 Гц, 240 Гц


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

Любая форма помощи, безусловно, будет оценена!

1 Ответ

0 голосов
/ 02 мая 2020

Я бы распределил поля следующим образом:

КАТЕГОРИИ (клавиатура, ноутбук)
id
имя

АТРИБУТЫ ( refresh_rate, layout)
id
name

ОСОБЕННОСТИ (50 Гц, 60 Гц, qwerty и др. c)
id
attribute_id
name

CATEGORIES_ATTRIBUTES
id
category_id
attribute_id

PRODUCTS
id
name
category_id
условие (может быть перечислением, я поставил его здесь, поскольку у каждого продукта есть условие)

PRODUCT_FEATURES
product_id
attribute_id (избыточно, но может спасти вас объединение при выполнении запросов)
feature_id

Cheers!

...