Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: База с кучей параметров. Как реализовать?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
VoVladey
Отправлено: 18 Мая, 2013 - 10:17:37
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Приветствую всех!

Столкнулся с такой штукой. Нужно сделать базу товаров с кучей параметров.

Товары могут быть совершенно разными от зубной щетки до вертолета. Соответственно параметров еще больше от длинны и плотности ворсинок до крутящего момента двигателя и предельной нагрузки на ось. + нужна возможность поиска по параметрам.
Может у кого есть догадки как это реализовано на Я.маркете (http://market.yandex.ru/guru.xml?CMD=-RR=9,0,0,0-VIS=70-CAT_ID=432460-EXF=1-EXC=1-PG=10&hid=91013) тут куча параметров для поиска.

Боюсь что делать таблицу с тысячей столбцов не вариант. Не понял

У кого какие есть соображения на этот счет.
 
 Top
alexiy
Отправлено: 18 Мая, 2013 - 10:23:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




можно например разбивать товары на категории
 
 Top
VoVladey
Отправлено: 18 Мая, 2013 - 10:30:36
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




Я тоже об этом думаю, только в ссылке которую я дал более 120 параметров у которых есть подробное описание из еще нескольких пунктов (свойства параметра) типа "Частота системной шины" (1066 МГц - 400 МГц - 533 МГц - 667 МГц - 800 МГц) и если я правильно понимаю, то все они могут принимать значение 1/0 неужели это все напилино на в базу??? А?!
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 12:28:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Делаешь таблицу характеристик properties, где:

id - айдишник характеристики
name - название характеристики

Затем делаешь таблицу значений характеристик property_values, где:

property_id - айдишник характеристики
entry_id - айдишник товара, к которому она относится
property_value - значение характеристики

Выборка к товару идет примерно так:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2.  
  3.   p.name,
  4.   pv.property_value
  5.  
  6. FROM property_values pv
  7. INNER JOIN properties p ON p.id = pv.property_id
  8. WHERE pv.entry_id = 22 /*айдишник товара*/
 
 Top
caballero
Отправлено: 18 Мая, 2013 - 14:23:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




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


кроме того вынсить в отдельные характеристики есть смысл те по которым идет отбор остальные просто в описании прописать


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 14:32:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




caballero пишет:
характеристики лучше к категории привязывать
"От зубной щетки до вертолета" - не очень красиво будет, сколько ты типов товаров налепишь таким макаром?
Или тип будет один, но с огромным полотнищем инпутов для ввода данных.
caballero пишет:
вынсить в отдельные характеристики есть смысл те по которым идет отбор остальные просто в описании прописать
Объясни это Яндекс[dot]Маркету, например.
 
 Top
caballero
Отправлено: 18 Мая, 2013 - 14:40:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
"От зубной щетки до вертолета" - не очень красиво будет, сколько ты типов товаров налепишь таким макаром?
Или тип будет один, но с огромным полотнищем инпутов для ввода данных.

в реальности очень мало магазинов торгующих таким асортиментом

по остальным получается не так уж много категорий
собственно одинаковый набор свойств и есть категория

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

а когда редактируется товар - в редакторе уже показывается весь список


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 14:47:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




caballero пишет:
собственно одинаковый набор свойств и есть категория
Да, но для классического "нехитрого" каталога я предложил верный вариант.
Кроме того он подходит и для огромного ассортимента.
Кроме того он подходит и к моему велосипеду.

caballero пишет:
свойства наследуются от родительских категорий до к дечерним
Увы, я снова упомяну Яндекс.Маркет, который никак не желает сотрудничать с "иерархией" и порядком следования информационных полей.
 
 Top
caballero
Отправлено: 18 Мая, 2013 - 14:55:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Да, но для классического "нехитрого" каталога я предложил верный вариант.
Кроме того он подходит и для огромного ассортимента.

либо простой каталог либо огромный асортимент
Цитата:

Кроме того он подходит и к моему велосипеду.

ну это всегда решающий аргумент Улыбка

Цитата:
Увы, я снова упомяну Яндекс.Маркет, который никак не желает сотрудничать с "иерархией" и порядком следования информационных полей.

ну так зачем эту свалку упоминать тогда


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
VoVladey
Отправлено: 18 Мая, 2013 - 15:17:46
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




ГОСПОДА!
Тема не раскрыта, а мозг у меня уже тупит дико.

Чувствую что это можно сделать элементарно и просто, но все куда-то не туда ухожу...

Попробую описать подробнее задачу...

Человек добавляет первый товар Допустим автомобиль.

У автомобиля есть такие характеристики как
1. тип двигателя (бензин, дизель, гибрид) выбирается из списка select
2. ABS выбирается просто через checkbox (1/0)
3. объем двигателя вводится в input text

В целом на автомобиль приходится около 150 характеристик, на компьютер можно накавырять около 400, и т.д. то есть в одну таблицу их сунуть просто нереально.

я это вижу пока так:

есть таблица категорий (авто, комп, фото, вело, мото, шмотки...)

есть таблица характеристик (разбег, пробег, цвет, вес, запах...)

и есть таблица товар с полем `feature` куда добавляются все использованные характеристики.

а уже при выводе из поля `feature` работает preg_replace который подменяет "Двигатель 3.0 л." на "Двигатель: <input type='text' name='motor' value='3.0'> л."

Вот сижу и думаю насколько это адекватный способ???? Растерялся
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 15:39:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Я показал адекватный способ.
Далее мы с caballero поболтали о своем, твоей задачи это пока мало касается.

Ты разобрал мой пример?
 
 Top
caballero
Отправлено: 18 Мая, 2013 - 15:44:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Чувствую что это можно сделать элементарно и просто, но все куда-то не туда ухожу...

может таки почитаешь что тебе пишут?

Цитата:
Тема не раскрыта

раскрыта достаточно

Цитата:
В целом на автомобиль приходится около 150 характеристик, на компьютер можно накавырять около 400, и т.д

кто вообще станет читать все эти характеристики?
и откуда на компьюьер 400 характеристик? вместе с количеством выводов микросхем и длиной соединительных проводов?

Цитата:
и есть таблица товар с полем `feature` куда добавляются все использованные характеристики.

в одно поле? а на фига тогда таблица характеристик?

Цитата:
а уже при выводе из поля `feature` работает preg_replace который подменяет "Двигатель 3.0 л." на "Двигатель: <input type='text' name='motor' value='3.0'> л."


свой preg_replace на каждую характеристику?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
VoVladey
Отправлено: 18 Мая, 2013 - 15:56:42
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




caballero,

1. количество характеристик я привожу в целом к примеру.
Есть основные характеристики, если мы говорим о ноутбуках то появляется вес, диагональ, время работы на батарейке и пр, если взять планшеты, там могут быть GSM, GPS, синийзуб, не забываем про сетевые карты (скорость), винты (скорость, кэш), сервера 1U и прочее, аксессуары это вообще улет, насчет 400 я конечно загнул, но в целом их много...

2. в таблице хранятся константы, название, ед.изм., возможные варианты. а в строки таблицы "товар" записывается название товара, наличие на складе и пр.

3. preg_replace на каждую характеристику?
Ага, тока массивом жахнуть, из тех же БД.
 
 Top
caballero
Отправлено: 18 Мая, 2013 - 16:03:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




так в чем проблемма сделать как предложено - связать товар с характеристикой и задать для этой связки значение


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
VoVladey
Отправлено: 18 Мая, 2013 - 16:04:50
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Март 2013  


Помог: 0 раз(а)




DeepVarvar

Понял что опять не туда полез.

Твой пример почти то что надо, только наверное мне еще одна таблица нужна, сейчас буду рисовать.
(Добавление)
caballero

Да,да...

Я почти сообразил...

Наверное у меня не совсем к товару должна быть привязка а скорей к группе.

Если человек собирается добавить стиралку, то у него вылазят характеристики подходящие для стиралок, если носки то характеристики подходящие к носкам.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB