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

start [/forum/topic.php?fid=32&mobile=1&tid=1543005]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 527ms |

| 0 / 0 |
