Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Спроектируем менеджер каталога продукции
 
 автор: mechanic   (21.10.2008 в 13:48)   письмо автору
 
 

по мотивам http://www.softtime.ru/forum/read.php?id_forum=2&id_theme=59030

[quote]еще одно интересное и общественно-полезное поделие - менеджер прайс-листа.. эт типа категории неограниченной вложенности, содержащие элементы товаров. сложность в том, что у товаров разных категорий совершенно разный набор свойств, а свойства могут быть как текстовыми, числовыми, диапазонными (частота 20Гц-20кГц), так и логическими (блютус - есть/нет).
и это еще не вся сложность - по всему этому добру должен вестись поиск )) и желательно иметь фильтры.. короче яндекс.маркет - это идеальный результат! )[/quote]

хотелось бы обсудить, какие подходы можно применить для построения подобного класса?
1. Была мысль отвести целую БД, где каждая таблица - категория с определенным набором свойств, + таблица для описания самих категорий и их иерархии
2. Была мысль заюзать мой "драйвер абстрактных объектов", который позволяет делать объекты с проивзольным набором свойств.. что то вроде недо-ОРМ
3. про XML подумал тоже (и XPath [http://www.w3.org/TR/xpath] как средство выборки), но никогда с ним не работал в таком качестве (хранение больших массивов данных)
4. обычный каталог (таблица категорий, таблица товаров), в таблице товаров text-поле с парами свойст ключ|значение, но это уже изврат )) зато гибко конечно..

somebody? :)

UPD
склоняюсь-таки к XML, с XPath раньше не работал, но с такими возможностями http://www.zvon.org/xxl/XPathTutorial/General/examples.html можно далеко уехать!
+ XML-товары можно будет легко редактировать, накидав XSLT шаблон для формы в админку

  Ответить  
 
 автор: Axxil   (21.10.2008 в 14:51)   письмо автору
 
   для: mechanic   (21.10.2008 в 13:48)
 

тут нужна ИМХО одна основная таблица - индекс вида
entity_id    parent_id

и таблица справочник
entity_id [поля....]


первая таблица - структура каталога. Вторая уточняет сущности, храня их свойства (тип, цена и т.д.).

Если каталог будет большой, то только на загрузку xml файла, для поиска по нему может нехватить ресурсов.

  Ответить  
 
 автор: mechanic   (21.10.2008 в 15:19)   письмо автору
 
   для: Axxil   (21.10.2008 в 14:51)
 

не вижу, как тут будет реализован разный набор свойств для товаров разных категорий..
как я понял выглядеть будет примерно так
entity_id parent_id
   1      0       //категория верхнего уровня
   2      1      //подкатегория для 1
   3      2      //подкатегория для 2
   4      3      //intel pentium 4

entity_id  [поля, с этого момента пожалуйста поподробнее )]
    1     Компьютеры
    2    Комплектующие
    3    Процессоры
    4    Как здесь задать описание проца, а в вышеуказанных категориях, например, их описания?

  Ответить  
 
 автор: Axxil   (21.10.2008 в 15:39)   письмо автору
 
   для: mechanic   (21.10.2008 в 15:19)
 

entity_id    name   description
    1         Компьютеры     Бла бла бла описание категории
    2         Комплектующие    Бла бла бла описание категории
    3         Процессоры   Бла бла бла описание категории
    4         Процессор Intel Pentium Core Duo   Бла бла бла описание конкретного процессора
    5         Процессор AMD Sempron     Бла бла бла описание конкретного процессора


Оговорюсь, что построение общего вида абстрактного каталога - задача бесперспективная.
Базу в данном случае однозначно спроектировать вряд ли возможно.

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

Это было было гораздо интереснее с практической точки зрения.

  Ответить  
 
 автор: mechanic   (21.10.2008 в 15:51)   письмо автору
 
   для: Axxil   (21.10.2008 в 15:39)
 

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

>Оговорюсь, что построение общего вида абстрактного каталога - задача бесперспективная.
>Базу в данном случае однозначно спроектировать вряд ли возможно

глядя на гуголь, я верю, что все возможно ;))

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

т.е. таки набор таблиц, вариант 1 ) если отбросить требование вывода товаров всех подкатегорий, начиная с текущей, то вполне можно обойтись так

DEM, как движутся дела по данной задаче? ;)

  Ответить  
 
 автор: Axxil   (21.10.2008 в 15:56)   письмо автору
 
   для: mechanic   (21.10.2008 в 15:51)
 

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

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

> глядя на гуголь, я верю, что все возможно ;))
Каким боком тут гугль, разрешите поинтересоваться?

> т.е. таки набор таблиц
Угу. БД под эту задачу отлично подходят.

  Ответить  
 
 автор: mechanic   (21.10.2008 в 16:09)   письмо автору
 
   для: Axxil   (21.10.2008 в 15:56)
 

> Ну так и делайте столько полей сколько надо в таблице.
я вроде не раз сказал уже, что число свойств неизвестно..

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

>Каким боком тут гугль, разрешите поинтересоваться?
да так, собсна никаким, просто впечатляют Google Docs (особенно), Picasa, Gmail, после такого кажется что сделать можно все что угодно, было бы желание и энтузиазм, чего текущие участники дискуссии жаль не проявляют

  Ответить  
 
 автор: sim5   (21.10.2008 в 16:19)   письмо автору
 
   для: mechanic   (21.10.2008 в 16:09)
 

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

  Ответить  
 
 автор: elenaki   (21.10.2008 в 16:25)   письмо автору
 
   для: mechanic   (21.10.2008 в 16:09)
 

делали что-то похожее. при вводе позиции (товара), выбирались и его свойства и чем эти
свойства представлены. например, есть возможность добавления поля к описанию товара.
когда выбрана эта функция, далее спрашиваетcя, будет это текстовое поле или набор чек-боксов
или набор радио-кнопок или селект. если текстовое поле, то предлагается его создать - дать
имя и значение. если остальное - создается таблица, которая связана с таблицей товара - и
предлагается занести пары "имя_поля - значение" (с возможностью редактирования и удаления).
может, криво объяснила, но это точно работало. у телевизоров и телефонов был разный набор
полей и дополнительных таблиц для их описания.

  Ответить  
 
 автор: mechanic   (21.10.2008 в 16:34)   письмо автору
 
   для: elenaki   (21.10.2008 в 16:25)
 

вот, это то что надо! это называется юзер-френдли интерфейс!
а кто делал? и где посмотреть можно? может и скачать даже

  Ответить  
 
 автор: Axxil   (21.10.2008 в 17:10)   письмо автору
 
   для: mechanic   (21.10.2008 в 16:34)
 

автор: Axxil   (21.10.2008 в 15:39) 

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


Я такое делал и не раз.
Только не в каталоге а в других задачах.

Это называется кодогенерация. Когда программы пишут программы. Матрица, короче :)
Т.е. основная идея не объять необъятное и увзязнуть в абстракциях и обобщениях, а сделать так чтобы система сама формировала нужный код и таблицы.

  Ответить  
 
 автор: elenaki   (21.10.2008 в 17:33)   письмо автору
43.5 Кб
 
   для: mechanic   (21.10.2008 в 16:34)
 

могу прислать админку.
скрины в аттаче ->

  Ответить  
 
 автор: mechanic   (22.10.2008 в 08:09)   письмо автору
 
   для: elenaki   (21.10.2008 в 17:33)
 

выглядит неплохо
пришлите пожалуйста, интересно поглядеть реализацию
mexxval (at) gmail com или тут можно прикрепить, как удобнее

  Ответить  
 
 автор: sim5   (22.10.2008 в 08:21)   письмо автору
 
   для: mechanic   (22.10.2008 в 08:09)
 

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

  Ответить  
 
 автор: mechanic   (22.10.2008 в 08:38)   письмо автору
 
   для: sim5   (22.10.2008 в 08:21)
 

тоже можно поглядеть, хотя как-то сложно сопоставить задачи гостевой книги с каталогом )

  Ответить  
 
 автор: sim5   (22.10.2008 в 09:34)   письмо автору
 
   для: mechanic   (22.10.2008 в 08:38)
 

Сложно сопоставить?) Вот и я когда ее хотел задействовать, выбрасывал это. Если остался у меня код ее, найду и выложу. А в общем там ничего сложного не было. Например, нужно в некую форму добавить некие поля. В режиме админа выбирается тип поля, его имя, текст у поля, атрибуты и их параметры, а также, коли это Гостевая, то у текстовых полей можно было добавлять проверку на допустимые символы при вводе и т.п.. Сама форма принадлежит родителю - скрипту вызывающему ее, и имеет шаблон записанный в таблицу базы, которая имеет поля описывающие поля этой у этой формы соответственно. При добавлении новых полей, добавляется либо поле в таблицу, если такого типа поля нет у формы, либо добавляется еще один уже существующий тип поля в соответсвующее поле таблицы. Ну а далее, при вызове, все получается. Вам практически тоже самое и нужно - знать какие поля добавить форме при описании тех или иных товаров.

  Ответить  
 
 автор: mechanic   (24.10.2008 в 11:03)   письмо автору
 
   для: elenaki   (21.10.2008 в 17:33)
 

> могу прислать админку.
все еще надеюсь :)

  Ответить  
 
 автор: elenaki   (24.10.2008 в 11:29)   письмо автору
 
   для: mechanic   (24.10.2008 в 11:03)
 

приду домой, как доберусь до компа, сразу вышлю.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования