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
Форумы портала PHP.SU :: Версия для печати :: архитектура склада [2]
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » архитектура склада

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

16. caballero - 15 Августа, 2013 - 18:13:01 - перейти к сообщению
перечисляемые типы хлопотно хранить и обрабатывать
громоздко получается
поэтому я их храню через запятую в строке

например диапазоны для мобильных телефонов
900,1800,1900

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


потом по этому списку генерятся чекеры в форме поиска
(для всех атрибутов из категории свои елементы ввода)
потом берется по самиту отчекереные значения и для каждого добавляется "and like" в запрос поиска
(Добавление)
а енумы не какят потому как предпочитаю делать переносимую структуру для любой БД
17. DlTA - 15 Августа, 2013 - 20:33:10 - перейти к сообщению
предпологаемые "проблемы" в будущем:
заказчику сто пудово захоца чтоб один и тот же товар находился в различных разделах
это конечно можно было бы вынести в фильтры, но для поисковиков куда выходней если это будет именно раздел позволяющий максимально конкретно описать(титл, ключевые, описание),определить товар
что существенно подымит в выдаче

а по сему, жесткая привязка товара к разделу бесполезна
18. caballero - 15 Августа, 2013 - 20:37:53 - перейти к сообщению
Цитата:
заказчику сто пудово захоца чтоб один и тот же товар находился в различных разделах

не факт

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

при чем описание товара к разделам
19. DlTA - 15 Августа, 2013 - 21:16:31 - перейти к сообщению
caballero пишет:
описание товара к разделам
сходных свойств
"большой ноутбук", "маленький ..."
"матовый ...", "глянцевый ..."
пипл ищет вот так, а значит и раздел для поисковика должен так выглядеть

но при этом каждый из них можно гурпировать совсем по иным параметрам
проц, размер памяти, ...... размер батареи,

примеры выглядят смешно (возможно) но именно на разделы с такими титлами поисковики и переходят
20. caballero - 15 Августа, 2013 - 22:43:37 - перейти к сообщению
ну так задавай титлы какие хочешь
а для поиска по филтру - конкретные атрибуты

мухи отдельно котлеты отдельно
21. DlTA - 16 Августа, 2013 - 00:08:04 - перейти к сообщению
caballero пишет:
ну так задавай титлы какие хочешь
а для поиска по филтру - конкретные атрибуты

мухи отдельно котлеты отдельно
во во, вот именно так рассуждают все разработчики, а вот реалии жизни ....
22. LIME - 16 Августа, 2013 - 06:30:29 - перейти к сообщению
при отображении раздела будут отображаться и товары дочерних
а для сопутствующих товаров типа расходные к принтерам будет таблица соединения разделов сам к себе
отдельно
это не проблема
23. Contr - 16 Августа, 2013 - 08:06:06 - перейти к сообщению
LIME,

я бы предварительно к Вашей схеме попробовал построить SQL-запросы (выборки), которые Вам понадобится в будущем сделать.
Посмотрел бы , как быстро вся эта схема работает.

Иногда приходится делать очень сложные запросы.
24. Stierus - 16 Августа, 2013 - 08:16:24 - перейти к сообщению
у нас вместо двух ваших таблиц feature_value_char и feature_value_int одна таблица feature_good_relation в которой есть:
good_id
feature_id
value_int
value_string
value_boolean

это позволяет получить нам значение свойств одним запросом. В твоей же реализации тебе надо сначала сделать запрос к features что бы получить тип свойства и понять, из какой таблицы брать связь. У нас же идет джойн одной и той же таблицы и в запросе ифами выбирается то или иное поле.
25. LIME - 16 Августа, 2013 - 08:18:46 - перейти к сообщению
caballero по поводу перечисления через разделитель как-то это не комильфо
что если одно значение совпадет с частью другого?
я бы и сюда влепил таблицу отдельно))
по индексу и выборка побыстрее чем по LIKE должна быть по идее

Contr спасибо за совет но тут все запросы как бы и так видны из схемы

еще вопрос
я в таблицах связей делаю оба поля первичным
есть ли смысл добавлять отдельный индекс для полей для выборки?
например в таблице связи характеристик с категориями возможно вообще лучше снять индекс с id характеристик
?
(Добавление)
Stierus пишет:
В твоей же реализации тебе надо сначала сделать запрос к features что бы получить тип свойства и понять, из какой таблицы брать связь.
совершенно нет
тип свойства это для отображения фильтра
тоесть это радио или селект и тд
выборка значений предполагается всегда из обеих таблиц юнионом по ключам товара и свойства
(Добавление)
оно вроде как побыстрее должно быть чем условие в джойне типа coalesc(или как там оно пишется забыл)) )...нет?
(Добавление)
Stierus пишет:
У нас же идет джойн одной и той же таблицы и в запросе ифами выбирается то или иное поле.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COALESCE(value_int,value_string,value_boolean) FROM feature_good_relation WHERE ...

(Добавление)
опять же еденицы измерения хранить удобнее для числовых
26. avtor.fox - 16 Августа, 2013 - 08:33:47 - перейти к сообщению

LIME пишет:
feature_good_relation

стоит лишь изменить одну букву и чувства верующих не будут затронуты Голливудская улыбка
27. LIME - 16 Августа, 2013 - 08:40:37 - перейти к сообщению

это не "LIME пишет:"
попрошу без анафемы мне ))
28. Stierus - 16 Августа, 2013 - 08:56:55 - перейти к сообщению
Добавятся у вас булевые, мультисвойства и еще что-то - у вас будет 3 ... 4 а то и больше джойнов?

у нас сейчас идет

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT IF(f.type=1, fgr.value_string, fgr.value_int) AS value FROM feature f
  2. INNER JOIN feature_good_relation fgr ON fgr.feature_id =  f.id
  3. WHERE fgr.good_id = ...
29. LIME - 16 Августа, 2013 - 09:01:41 - перейти к сообщению
не джойнов а юнионов
и булев тип легко эмулируется целым
Stierus пишет:
мультисвойства
а это как? что у товара может такого быть например?
30. Stierus - 16 Августа, 2013 - 09:20:05 - перейти к сообщению
Цитата:
и булев тип легко эмулируется целым
Да и инты в строки пихать можно, кто ж спорит, но это разные типы, с разным отображением

Цитата:
а это как? что у товара может такого быть например?
Это например "Форматы воспроизведения аудио" AAC, HE-AAC, MP3 (от 8 до 320 кбит/с), MP3 VBR, Apple Lossless, AIFF, WAV
Когда у одного свойства есть заранее заложенные варианты значений и можно выбрать либо одно значение из этого заранее заложенного списка, либо несколько Улыбка

 

Powered by ExBB FM 1.0 RC1