Обновить
8K+
51
Александр Шульман@developer

Развиваю ИТ

10
Рейтинг
49
Подписчики
Отправить сообщение
в общем то у меня в сутки происходит заливка 10к новых обектов, а вся база крутится на предмет поиска и все летает. вы совершенно верно подметили, что производительность на уровне.
ну вот я например сталкнулся с автомабилями, я заранее не знал какие там выделить классы и тд и тп.
Впрочем каждый имеет право на свое мнение. Некоторые до сих пор ООП не признают, и с радостью вам докажут чем ООП плох.
=) уж тебе ли не знать, сколько времени я отвожу проектированию?
вот видно — не внимательно читал:
>а практике, при решении подобных задач всегда находится набор свойств…
они попадают/качуют в первичные, написано же:
«выделить первичные (наиболее используемые в поиске) и вторичные свойства сущности, по первичным свойствам создаем таблицу»
еще раз повторюсь: если ты например осваиваешь новый рынок, то не знаешь какое поле будет наиболее употребительно для поиска.
второе: уневивирсальное решение — хороший метод для анализа.

вот сделаешь ты мега читаемую таблицу на 40 столбцов, а окажется она заполена на 20%, будут ли у тебя индексы работать? нет.
а вы пытаетесь применить метод к не той проблеме. Вот посмотрите мою задачу (80к автомобилей, 47 параметров) и вы поймете, преимущества.
а кстати у вас все ограничения в таблицу класть. id нименования, поле, возможные переходы.
а вот я против сравнительного анализа в одной статье. Ибо как писал ниже: выбирать все равно вы будите и вы сами можете прочесть одно, прочесть другое и решить себе. Я ж не нанимался репортером чтоб все писать. и денег я з аэто не получу, а так просто делаю доброе дело — рассказываю чтоб и критику послушать и просто провести вечер в форуме.
так вот вы усложняете не меньше чем я. Общие свойства в одном месте. а другие в другом. а теперь просто представьте что у вас оказалось что поле цвет было частным, а стало общим. Как вы будите вводить изменение. внизу правильно сказали, что если сущностей не много и не предполагается «гуляние» структуры, то пользуйтесь обычным классическим решением, вот я знал заранее что параметров много, какие то будут удалены, какие-то добавлены и не ясно какие самые популярные для поиска
нуу если честно то как правило мы реально узнаем задачу только сделав половину решения
вообще то да лучше рассмотреть несколько вариантов, тока выбирать все равно вы будите и вы сами можете прочесть одно, прочесть другое и решить себе
вот я напишу, а вы не поверите опять…
ваш SELECT * FROM oil будет использовать максимум один индекс, а значит если в базе 1024 товаров, из них половина в price < 30, и 1/4 в AND type in ('Castrol','Mobile'), то будет использован индекс на поле type (у вас ведь нет индекса на price+type) собственно выделив 1/4 вы дальше по базе результату пойдете простым перебором.

в случае полной нормализации ВСЕ ждойны происходят с оператором on, который задает связь по первичному ключу + если весит индекс на value то поиск по всем полям будет вестись по бинарному дереву ибо на все эти джойны будут наложен один индекс а не несколько.

а ведь есть и поля которые чисто технические (кол-во на складе) и тогда запрос: все товары, которых менее 100 на складе и размером не более 100см будут у вас бегать по разным таблицам и гемору вы отгребете не менее чем на написание конструктора SQL запроса (что я сделал за вас)
вот 5 человек заминусовало топик… Зачем спрашивается? что тут плохого именно? бывают топики какие-то хорошие — им плюс ставят, бывают плохие — им минус ставят. Ну ставишь минус — утруди себя работой объясни, а тупо пробигая "-" лепи. Такое ощушение что все индусы, которые не врубаются лепят минусы
неправильно вы думаете. Да и говорите вы неверно: Во первых если вы заранее не знаете по каким полям будет идти поиск, то вы не только проиграете по скорости с таблицей в 30 столбцов, но еще и отгребете проблему построения индексов. в вашем примере на товары, забавно будет посмотреть на то как вы будите по 1500 или 5к (это количество разных видов товаров) делать поиск по ограничивающему параметру. Вот у меня например автомобили, так там в комплектации постоянно что-то дабаляется, а что-то из списков выбора становится текстовым значением, что-то просто есть/нет (кондицианер, люк и пр.) Второй момент такой, что по скорости вы резко получаете выйгрыш после того как набрав статистику вы перенесете часть параметров в первычные. В конце концов убеждать я вас не собираюсь, я ж делюсь решением, а не навязываю его.
если честно, то я тоже сейчас так делаю, но по науке нужно всеже в разные.
потому что тогда вам будет труднее добавить/удалить лишнее поле. Вот у меня задача где у объекта 40 характеристик, есть задачи, когда у объекта 400 характеристик и добавляются/удаляются
+ в карму так сказать авансом.
положили б ссылку
по XSLT вы бы собрались да с примерами все рассказали б в виде статьи
=) улыбнуло. я уж представил просто такой средне статистический высоконагруженный проект, который делают экстраспецы:

первое: Наш проЙЭкт настолько HILoad, что мы реально замарачиваемся и меняем все принты на эхи, и никаких контенинаций!!! не дай бохИ! ведь все нужно через запятую передать в эхи-это жутко принципиально!

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

третье: нам обязательно нужен Дизайнер и он будет работать с шаблонизатором, но поскольку PHP это язык шаблонов, то мы будем использовать тока PHP-Native. А да так мы еще и получим супер оптимизацию ведь мы не придумываем лишних абстракций!

Задачи кеширования мы будем решать сразу и заранее! то что нет нагрузки не проблемма- закешируем так что будет! кешируй нафиг все и сразу. Кто сказал что затраты на поддержание кеша больше чем выйгрыш? да он ламер.

короче достаточно почитать топики/коменты и станет весело

Информация

В рейтинге
826-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Генеральный директор
Ведущий
От 3 000 000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса