|
|
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Всем привет. Хочу написать конструктор компьютера на сайт интернет-магазина, чтобы пользователь сам мог подобрать комплектующие для своего компа. В базе данных есть таблица "Товары" и таблица "Группы товаров", каждый товар входит в какую-либо одну группу товаров. При подборе комплектующих необходимо учесть, что если пользователь выбрал какой-либо товар, то после этого он может выбрать только товары, совместимые с ранее выбранным. Например, если он выбрал процессор Intel, то в группе "Материнские платы" отображаются только совместимые материнки, в группе "Кулеры" отображаются только совместимые с этими процессорами и материнками кулеры, в группе "Звуковые карты" отображаются только те звуковухи, которые подходят к материнкам, которые подходят к выбранному процу. Немного запутанно выразился, но, думаю, понятно. В-общем, главный вопрос, который никак не могу осмыслить - как лучше всего хранить в базе данных зависимости между этими товарами? Пока что я вижу только один вариант решения этой задачи - создать таблицу, в которой каждая строка будет хранить два значения - ID какого-либо товара и ID совместимого с ним товара. Но при таком раскладе придется слишком много запросов делать, чтобы извлечь данные по всем совместимым товарам. Может, кто-нибудь предложит способ лучше? Если есть open-source реализации этой идеи, с удовольствием их исследую. Другой полезной информации тоже буду рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2009, 00:04 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Odmink, Похоже на конструкторский граф с модификациями (т.е. выбор либо-либо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2009, 14:26 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Odmink, вполне нормальная реализация... Ты оцени глубину вложения (это порядок категорий товаров, т.е. максимальное кол-во единиц, которое можно запихнуть в один комп). Не так много запросов, как ты этого боишься... СУБД - MySQL? Большей проблемой будет реализовать удобный интерфейс пользователя и хранение данныхтак, чтобы в твоей БД не было критичных ошибок в самих данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2009, 14:50 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Не слишком хорошая идея связи непосредственно товаров по ИД. Зная немного предметную область и то количество номенклатуры, в ней вращающееся, могу предположить отчаянную запарку при указании совместимости и громадному количеству ошибок. Совместимость такую разумно делать по составу и наличию определенных свойств, характеристик, параметров номенклатуры. Например, вводим сущность "Параметр": "Сокет", "Форм-фактор", "Разъемы", и т. д. Для каждого вида номенклатуры определям перечень характеристик, которыми она обладает и указываем значения этих самых характеристик. ричем, значения могут быть единственными или задаваться списком (вроде "Разъемы" могут содержать список значений "PCI", "PCI-E 1x" и т. д.). Таким образом, каждый вид номенклатуры формально описывается неопытным оператором, которому достаточно глядеть в спецификацию продукта и тупо заполнять предлагаемые системой характеристики. Совместимость вычисляется по совпадению видов характеристик и их значений. Т.е. если процессор содержит параметр "Сокет" со сначением "Socket AM-3", то к нему предлагается остальная номенклатура, которая имеет точно такой же вид характеристики с точно таким же значением. К мат. плате, у которой в списке "Разъемов" есть "PCI", предлагаются платы расширения, имеющие точно такой же разъем. И так далее. Несколько сумбурно объяснил, но, думаю, направление продожения движения понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2009, 06:42 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
авторХочу написать конструктор компьютера на сайт интернет-магазина, чтобы пользователь сам мог подобрать комплектующие для своего компа.а если что вы скажете покупателю -- голубчик ты же сам эту модель выбрал -- мы только винты крутили. Покупатель решать ребусы не должен -- он деньги платит (имхо) Разработайте 5 базовых моделей ПК под разные задачи. Их и предлагайте покупателю. На этом принципе работают все компутерные рынки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2009, 09:39 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за ответы. Особенно aston-у за обоснование необходимости использования характеристик товаров. Действительно, таблица, хранящая пары совместимых товаров, кажется удобным решением, но ручной ввод таких товаров - это нечто ужасное. Мне на другом форуме подсказали создавать такую таблицу автоматически, на основе всё тех же характеристик - например, при помощи хранимой процедуры, срабатывающей в момент добавления товара. Возможно, так я и сделаю - по крайней мере мне кажется, что наличие таблицы совместимости может ускорить выбор вариантов и полностью от неё отказываться не стоит. nosov: Ваш комментарий считаю некорректным. Сервис является популярным и востребованным, особенно со стороны технически грамотных покупателей, и если Вас что-то в нём не устраивает - это Ваше личное мнение, которое Вы имеете полное право высказать, а я - пропустить его мимо ушей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2009, 18:11 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
Odmink 1. технически слабых покупателей вы отсекаете. Вам их деньги не нужны. 2. гладко было на бумаге да забыли про овраги. (пословица) некоторые железки не любят друг друга -- хотя должны работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 14:53 |
|
||
|
Структура БД для онлайн-конструктора
|
|||
|---|---|---|---|
|
#18+
astonСовместимость такую разумно делать по составу и наличию определенных свойств, характеристик, параметров номенклатуры. Например, вводим сущность "Параметр": "Сокет", "Форм-фактор", "Разъемы", и т. д. Для каждого вида номенклатуры определям перечень характеристик, которыми она обладает и указываем значения этих самых характеристик. ричем, значения могут быть единственными или задаваться списком (вроде "Разъемы" могут содержать список значений "PCI", "PCI-E 1x" и т. д.).Это минимальный уровень По нормальному нужно прописывать, насколько хорошо компоненты работают друг с другом. Да и даже если формально подходить (типа-купил, и дальше его проблемы), то всё равно неправильно - например, не каждую плату "PCI-E 1x" можно вставить куда угодно, если разъём тоже "PCI-E 1x" - допустим, в низкопрофильный корпус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 16:58 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36231147&tid=1543005]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 492ms |

| 0 / 0 |
