powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для онлайн-конструктора
8 сообщений из 8, страница 1 из 1
Структура БД для онлайн-конструктора
    #36231147
Odmink
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Хочу написать конструктор компьютера на сайт интернет-магазина, чтобы пользователь сам мог подобрать комплектующие для своего компа. В базе данных есть таблица "Товары" и таблица "Группы товаров", каждый товар входит в какую-либо одну группу товаров. При подборе комплектующих необходимо учесть, что если пользователь выбрал какой-либо товар, то после этого он может выбрать только товары, совместимые с ранее выбранным. Например, если он выбрал процессор Intel, то в группе "Материнские платы" отображаются только совместимые материнки, в группе "Кулеры" отображаются только совместимые с этими процессорами и материнками кулеры, в группе "Звуковые карты" отображаются только те звуковухи, которые подходят к материнкам, которые подходят к выбранному процу. Немного запутанно выразился, но, думаю, понятно.

В-общем, главный вопрос, который никак не могу осмыслить - как лучше всего хранить в базе данных зависимости между этими товарами? Пока что я вижу только один вариант решения этой задачи - создать таблицу, в которой каждая строка будет хранить два значения - ID какого-либо товара и ID совместимого с ним товара. Но при таком раскладе придется слишком много запросов делать, чтобы извлечь данные по всем совместимым товарам. Может, кто-нибудь предложит способ лучше? Если есть open-source реализации этой идеи, с удовольствием их исследую. Другой полезной информации тоже буду рад.
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36232838
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Odmink,
Похоже на конструкторский граф с модификациями (т.е. выбор либо-либо)
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36232905
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Odmink, вполне нормальная реализация... Ты оцени глубину вложения (это порядок категорий товаров, т.е. максимальное кол-во единиц, которое можно запихнуть в один комп). Не так много запросов, как ты этого боишься... СУБД - MySQL? Большей проблемой будет реализовать удобный интерфейс пользователя и хранение данныхтак, чтобы в твоей БД не было критичных ошибок в самих данных...
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36234142
aston
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не слишком хорошая идея связи непосредственно товаров по ИД. Зная немного предметную область и то количество номенклатуры, в ней вращающееся, могу предположить отчаянную запарку при указании совместимости и громадному количеству ошибок.

Совместимость такую разумно делать по составу и наличию определенных свойств, характеристик, параметров номенклатуры.
Например, вводим сущность "Параметр": "Сокет", "Форм-фактор", "Разъемы", и т. д.
Для каждого вида номенклатуры определям перечень характеристик, которыми она обладает и указываем значения этих самых характеристик. ричем, значения могут быть единственными или задаваться списком (вроде "Разъемы" могут содержать список значений "PCI", "PCI-E 1x" и т. д.).

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

Совместимость вычисляется по совпадению видов характеристик и их значений.
Т.е. если процессор содержит параметр "Сокет" со сначением "Socket AM-3", то к нему предлагается остальная номенклатура, которая имеет точно такой же вид характеристики с точно таким же значением.
К мат. плате, у которой в списке "Разъемов" есть "PCI", предлагаются платы расширения, имеющие точно такой же разъем.
И так далее.

Несколько сумбурно объяснил, но, думаю, направление продожения движения понятно.
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36234290
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторХочу написать конструктор компьютера на сайт интернет-магазина, чтобы пользователь сам мог подобрать комплектующие для своего компа.а если что вы скажете покупателю -- голубчик ты же сам эту модель выбрал -- мы только винты крутили.

Покупатель решать ребусы не должен -- он деньги платит (имхо)

Разработайте 5 базовых моделей ПК под разные задачи. Их и предлагайте покупателю.

На этом принципе работают все компутерные рынки.
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36290656
Odmink
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо за ответы.

Особенно aston-у за обоснование необходимости использования характеристик товаров. Действительно, таблица, хранящая пары совместимых товаров, кажется удобным решением, но ручной ввод таких товаров - это нечто ужасное. Мне на другом форуме подсказали создавать такую таблицу автоматически, на основе всё тех же характеристик - например, при помощи хранимой процедуры, срабатывающей в момент добавления товара. Возможно, так я и сделаю - по крайней мере мне кажется, что наличие таблицы совместимости может ускорить выбор вариантов и полностью от неё отказываться не стоит.

nosov: Ваш комментарий считаю некорректным. Сервис является популярным и востребованным, особенно со стороны технически грамотных покупателей, и если Вас что-то в нём не устраивает - это Ваше личное мнение, которое Вы имеете полное право высказать, а я - пропустить его мимо ушей.
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36292375
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Odmink

1. технически слабых покупателей вы отсекаете. Вам их деньги не нужны.
2. гладко было на бумаге да забыли про овраги. (пословица)
некоторые железки не любят друг друга -- хотя должны работать.
...
Рейтинг: 0 / 0
Структура БД для онлайн-конструктора
    #36292834
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astonСовместимость такую разумно делать по составу и наличию определенных свойств, характеристик, параметров номенклатуры.
Например, вводим сущность "Параметр": "Сокет", "Форм-фактор", "Разъемы", и т. д.
Для каждого вида номенклатуры определям перечень характеристик, которыми она обладает и указываем значения этих самых характеристик. ричем, значения могут быть единственными или задаваться списком (вроде "Разъемы" могут содержать список значений "PCI", "PCI-E 1x" и т. д.).Это минимальный уровень

По нормальному нужно прописывать, насколько хорошо компоненты работают друг с другом.

Да и даже если формально подходить (типа-купил, и дальше его проблемы), то всё равно неправильно - например, не каждую плату "PCI-E 1x" можно вставить куда угодно, если разъём тоже "PCI-E 1x" - допустим, в низкопрофильный корпус.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для онлайн-конструктора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]