Страница 2 из 2

Re: [6.3] [7.3] А можно ли сделать так...

Добавлено: 15 Август 2011, 14:05
kreator
Ну например. Если использовать Browse/Form, то в форме можно сделать несколько закладок, которые отвечают за различные свойства. И при выборе типа товара делается Hide/Unhide нужных закладок. Все-таки для меня большой вопрос - можно ли предусмотреть неограниченное количество свойств для всего? Может ограничиться типичными?

Re: [6.3] [7.3] А можно ли сделать так...

Добавлено: 24 Август 2011, 11:56
kreator
Бессонной ночью пришла идея – как сделать настраиваемые свойства товара.
Итак. Создаем две глобальные таблицы (справочники) – «Виды_свойств» со столбцами «ID», «Name» и «Свойства» с полями «ID», «Виды_свойств_ID» , «Name». Связываем их по схеме 1:many. Для примера добавляем записи. В первую таблицу – (1, Цвет), соответственно во вторую - (1, 1, белый), (2, 1, серебристый), (3, 1, черный). В первую таблицу – (2, Диагональ экрана), во вторую - (4, 2, 37”), (5, 2, 42”), (6, 2, 46”). В первую таблицу – (3, Бренд), во вторую - (7, 3, LG), (8, 3, Philips), (9, 3, Samsung) , (10, 3, Toshiba). И для разнообразия - в первую таблицу – (4, Тип памяти), во вторую - (11, 4, DDR), (12, 4, DDR2), (13, 4, DDR3). Замечу, что свойства, которые можно сделать чек-боксовыми или радиобатоннами должны быть преобразованы в стринговые (например, для свойства «Full HD» значения будут – «Да», «Нет»).
Далее. Таблица товаров у нас уже есть – «Товары», столбцы – «ID», «ParentID», «Name» (как договаривались, делаем «дерево по одному файлу»).
Далее. Создаем таблицу «Свойства_товара» со столбцами – «ID», «Товар_ID», «Виды_свойств_ID», «Свойства_ID». Связываем ее по соответствующим столбцам с таблицей «Товары» по схеме many:1, с таблицей «Виды_свойств» по схеме many:1 и с таблицей «Свойства» тоже по схеме many:1. Теперь для конкретного товара «Телевизор LG 42LE7500» добавить свойства – (Цвет, черный), (Диагональ экрана, 42”), (Бренд, LG). Свойство «Тип памяти» оставим для других товаров.
Лирическое отступление. В изложенной выше схеме предполагается, что конкретный вид свойства для конкретного товара должен быть уникальный. Т.е. цвет может быть только черный для нашего телека. Это достигается построением уникального индекса по столбцам «Товар_ID», «Виды_свойств_ID», «Свойства_ID». Если же это не так (например, вид свойств «Интерфейс USB» может быть со значениями «1.1», «2.0», «3.0» одновременно), то либо строим уникальный индекс только по столбцам «Товар_ID», «Виды_свойств_ID», либо создаем еще одну таблицу.
Экранное представление этой схемы – обычный Browse (ну либо два связанных между собой Browse, если две таблицы). Но это для менеджера, который вводит товар. Для покупателя это может выглядеть вот так - [/url]http://www.ulmart.ru/tvs/[/url]. Заметьте, что дерево как бы скрыто. До нужного товара можно добраться разными путями – Диагональ экрана->Бренд->Цвет или Цвет->Диагональ экрана->Бренд или Бренд->Диагональ экрана->Цвет.
Ну вот, как-то так.

Re: [6.3] [7.3] А можно ли сделать так...

Добавлено: 25 Август 2011, 0:39
Bum
Прошу прощения за долгое молчание, времени не было, а были (да и есть пока) проблемы.

Большое спасибо за эскиз, буду переваривать всё накопившееся.