Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql КАТАЛОГ ТОВАРОВ

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Rit

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как организовать добавление (текстовой информации и картини, можно просто с сылкой на картинку) и считывания из базы товара! Желательно код или пример, какой-нибудь ОЧЕНЬ НУжен!

Всего записей: 1 | Зарегистр. 27-12-2005 | Отправлено: 02:16 27-12-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rit

Цитата:
или пример, какой-нибудь ОЧЕНЬ НУжен!  

обзор «Помощи вебмастеру» » учебники, статьи, уроки, ресурсы »  

 

Цитата:
Желательно код

телепатов здесь нет.. языков программирования очень много.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:18 27-12-2005
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день,
 
Столкнулся с задачей создания каталога продукции.
 
Каталог состоит из приличного количество товаров, имеющих динамические характеристики (вес, размеры, функции и т.п.). Было бы все просто: указываешь название товара, категорию, картинку, описание и добалявешь в базу данных!
 
НО! Необходима возможность сравнения товаров, соответственно каждая характеристика должна быть представлена отделаьным атрибутом в таблице, так же в будущем возможен электронный магазин.
 
Каким наиболее оптимальным путем стоит пойти при создании каталога? (Разных видов товара примерно штук 20. Неужели придется для акждого создавать свою таблицу и свою страницу добавления и редактирования?)
 
Харанее спасибо.

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 12:29 29-12-2005
Church



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://phpclub.ru/talk/showthread.php?s=&threadid=61606&rand=31
 
Я лично использовал бы
 
таблицу для дерева категорий
 
таблицу для продуктов (с указанием типа товара):
-------------------------
id | type
------------------------
1 | 1
==============
 
таблицу с описанием данных для определенного типа товаров:
-------------------------
id | type_item  | type | code  
------------------------
1  | computer  | int     | price
2  | computer  | text   | description
==============
 
таблицу с данными:
--------------------------------------------------------------
item_id | type_id | value_int | value_float | value_text
--------------------------------------------------------------
1         | 1          |  1000       | 0              |  
1         | 2          |  0            | 0              | Хороший компьютер
===================================
 
 
Что-то типа такого....

Всего записей: 1199 | Зарегистр. 05-09-2003 | Отправлено: 13:48 29-12-2005
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот к примеру я добавляю новую категорию. При этом ниже появляется возможность установить параметры данной категории, которые будет отображаться у товара данной категории.
 
Тогда получается, что при добавлении поля еще необходимо указывать его тип (числовое или символьное), да?
 
Только почему в type_item содержится название категории, а не ее уникальный идентификатор?

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 16:15 29-12-2005 | Исправлено: 6epcepk, 17:31 29-12-2005
Church



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Только почему в type_item содержится название категории, а не ее уникальный идентификатор?

 
Ошибся... Должен быть уник. идентификатор:
-------------------------  
id | type_item  | type | code  
------------------------ -------------
1  | 1             | int     | price  
2  | 1             | text   | description  
==============  
 
 
Добавлено:

Цитата:
Тогда получается, что при добавлении поля еще необходимо указывать его тип (числовое или символьное), да?  

 
Да. Выборку чисел лучше делать по числовым полям :0)

Всего записей: 1199 | Зарегистр. 05-09-2003 | Отправлено: 18:29 29-12-2005
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Привет,
 
Вопрос 1
 
отпал (:
 
 
Вопрос 2
 
Например, я удаляю при редактировании характеристик товаров заданной категории какую-нибудь характеристику.
 
При этом:
 
а) Удаляется характеристика из таблицы с характеристиками для категории.
б) Удаляются все данные характеристики из таблицы с непосредственно заполененными характеристика для товаров.
 
Вопрос: как мне сделать шаг б). То есть я вообще никак не могу добраться до этих значений.
 
Ответ: необходимо добавить дополнительное поле с идентифимкатором записи из таблицы зарактеристик.

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 22:11 30-12-2005 | Исправлено: 6epcepk, 01:25 06-01-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как вы думаете, что удобней:
1. При добавлении категории указывать характеристики, которые будут содержать данные товары;
2. Сделать дополнительный раздел ("Типы"), где надо будет добавлять типы товаров.
Например, "Мобильные телефоны", а в этом типе уже: "Вес, "Размер" и т.п.
При добавлении товара надо будет помимо категории выбрать "Тип" товара.

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 19:45 11-06-2006
Oleg_Tarusov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Второй, я думаю, меньше выбирать.

Всего записей: 175 | Зарегистр. 25-02-2006 | Отправлено: 01:48 12-06-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk
Прочитайте 2 ссылки
http://forum.ru-board.com/topic.cgi?forum=31&topic=9465#1
http://forum.ru-board.com/topic.cgi?forum=31&topic=9560#1
Очень внимательно и вдумчиво.  
Пишем очень, потому что там очень много шума было от людей которые не разобрались о чем речь
Cheery
Имхо эту (и те две темы) можно куда-нибудь прибить что бы было сразу заметно. Вопросы почти одинаковые. Обсуждения там тоже достаточно, вполне полезного местами.

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 02:12 12-06-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
edogs
Я видел две ссылки, но мой вопрос совершенно их не касается, причем эта тема была создана первая, по сравнению с теми.
В дискуссию вступать не буду, потому что придерживаюсь варианта, описанного выше, меня просто интересовало с точки зрения конечного пользователя юзабилити конкретного момента (:

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 12:59 12-06-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk
Дык Ваши вопросы там тоже встречались, равно как и ответы на них. И даж в дискуссию не надо вступать, уже обсуждено
6epcepk

Цитата:
Как вы думаете, что удобней:  
1. При добавлении категории указывать характеристики, которые будут содержать данные товары;  
2. Сделать дополнительный раздел ("Типы"), где надо будет добавлять типы товаров.  
Например, "Мобильные телефоны", а в этом типе уже: "Вес, "Размер" и т.п.  
При добавлении товара надо будет помимо категории выбрать "Тип" товара.

2-ой вариант, ибо наверняка рано или поздно натнетесь на ситуацию когда надо будет добавить в категорию "атипичный" для нее товар. А если упаси боже дойдет до того что 1 товар может попадать в 2 категории...
 

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 13:09 12-06-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
2-ой вариант, ибо наверняка рано или поздно натнетесь на ситуацию когда надо будет добавить в категорию "атипичный" для нее товар. А если упаси боже дойдет до того что 1 товар может попадать в 2 категории...

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

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 15:07 12-06-2006
Daiz13



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может пригодится кому...
структура таблиц для хранения различных типов товаров и их харакетристик:
shop_product_types - типы продуктов (телефон, телевизор, холодильник);
shop_properties_tree - дерево харакетристик, отдельное для каждого типа;
shop_properties_values - значения харакетристик;
 

Код:
 
CREATE TABLE `shop_product_types` (
  `type_id` int(5) unsigned NOT NULL auto_increment,
  `parent_id` int(5) unsigned NOT NULL default '0',
  `title` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  PRIMARY KEY  (`type_id`)
) ;
 
CREATE TABLE `shop_properties_tree` (
  `property_id` int(11) unsigned NOT NULL auto_increment,
  `type_id` int(5) unsigned NOT NULL default '0',
  `parent_id` int(11) unsigned NOT NULL default '0',
  `sort_order` int(3) unsigned NOT NULL default '0',
  `enabled` int(1) unsigned NOT NULL default '0',
  `property_type` varchar(32) collate utf8_unicode_ci NOT NULL default '',
  `title` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `value` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `selected` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `filter` int(1) NOT NULL default '0',
  PRIMARY KEY  (`property_id`)
)  ;
 
CREATE TABLE `shop_properties_values` (
  `entry_id` int(11) unsigned NOT NULL auto_increment,
  `product_id` int(11) unsigned NOT NULL default '0',
  `property_id` int(11) unsigned NOT NULL default '0',
  `value` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  PRIMARY KEY  (`entry_id`)
) ;
 

Всего записей: 257 | Зарегистр. 06-06-2001 | Отправлено: 20:30 04-10-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Daiz13
Я уже встречал мнение, что если хранить значения всех типов данных в поле varchar, то это ускорит работу. Было бы интересно увидеть результаты тестов, если кто делал.

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 17:22 05-10-2007
aveon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
что если хранить значения всех типов данных в поле varchar,  

 
получаеться что памяти будет использоваться меньше... НО: работать будет медленнее... по спвнению с просто char

Всего записей: 5 | Зарегистр. 25-11-2006 | Отправлено: 18:00 23-12-2008
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
получаеться что памяти будет использоваться меньше... НО: работать будет медленнее... по спвнению с просто char  

чем подкреплено мнение?

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 19:00 23-12-2008
hunter29



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Я лично использовал бы
 
таблицу для дерева категорий
 
таблицу для продуктов (с указанием типа товара):
-------------------------
id | type
------------------------
1 | 1
==============
 
таблицу с описанием данных для определенного типа товаров:
-------------------------  
id | type_item  | type | code  
------------------------ -------------
1  | 1             | int     | price  
2  | 1             | text   | description  
==============  
 
таблицу с данными:
--------------------------------------------------------------
item_id | type_id | value_int | value_float | value_text
--------------------------------------------------------------
1         | 1          |  1000       | 0              |  
1         | 2          |  0            | 0              | Хороший компьютер
===================================  

 
У меня вот возник вопрос:
Если использовать подобную схему, как делать выборку всех характеристик одного товара с помощью одного запроса? Или придется сначала узнавать, какого типа характеристика, а потом вытягивать то ли value_int то ли value_text? но эт вроде как долговато будет..

Всего записей: 39 | Зарегистр. 30-12-2008 | Отправлено: 13:38 11-02-2011
poyt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hunter29
 

Цитата:
Если использовать подобную схему, как делать выборку всех характеристик одного товара с помощью одного запроса? Или придется сначала узнавать, какого типа характеристика, а потом вытягивать то ли value_int то ли value_text?

 
Многотабличным запросом.
Вида:

Цитата:
SELECT тут список нужных полей FROM список таблиц WHERE условия по которым производится выборка

 
Я бы не стал использовать подобную структуру. Так как она избыточна <=> ненормализована.

Всего записей: 642 | Зарегистр. 26-06-2006 | Отправлено: 13:51 11-02-2011 | Исправлено: poyt, 13:53 11-02-2011
hunter29



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
poyt
Мне тож так кажется Просто пытаюсь сейчас выбрать наилучший вариант...
 
Вот если сделать вот так: (есть два варианта товара - шины и диски + нужен поиск по автомобилю)

Код:
 
brand
  id, name, type (t, d или car)
        
brand_picture
  id, brand_id, picrure_location
        
model
  id, brand_id, name
        
model_picture
  id, model_id, picture_location
        
model_params_t  (tyres)
  id, model_id, ..............
        
model_params_d  (disks)
  id, model_id, .......
                
car_params
  id, model_id, .........
        
product
  id, type, price, .........
                
product_params_t  (tyres)
  id, product_id, model_params_id, ..........
        
product_params_d  (disks)
  id, product_id, model_params_id, .........
 

 
Сначала по id товара я узнаю brand.type, а затем уже на основании этого типа будет производится выборка нужных параметров:
 

Код:
 
bd->query('узнать тип по ид товара');
 
$query = 'SELECT * FROM product_params_' . $type . ' WHERE product_id = blabla';
 

Что скажете по поводу данной структуры базы?

Всего записей: 39 | Зарегистр. 30-12-2008 | Отправлено: 15:36 11-02-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql КАТАЛОГ ТОВАРОВ


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru