Как правильно реализовать каталог с параметрическим поиском

Absinthe

жожо
Кстати мне почему-от после часов 3х возни с установкой mongo на freebsd, mongo нравиться перестала)
Так оно даже на винду за 10 минут ставится!

Да и бэкэнд в виде мускула не помешал бы, особенно учитывая возможности обёртки в виде Doctrine Orm
Это как? Что в данном контексте значит бэкэнд и как оно делается?
 

AmdY

Пью пиво
Команда форума
AmdY
я не знаток и очень интересуюсь, если все что ты говоришь правда, то у нас парни сделали наоборот,

они запихали предложения в мого при колличестве в сотнях мио записей, при ежедневном добавлении/изменении в сотнях К... при этом они не пропускали ни единной монговской конференции в городе... думаешь они ошиблись?
почему наоборот? пока влазит всё в оперативку серверов. то монга себя прекрасно чувствует.
 

WMix

герр M:)ller
Партнер клуба
почему наоборот? пока влазит всё в оперативку серверов. то монга себя прекрасно чувствует.
каждая ветка содержит около ~1000 символов (продукт, ссылка, набор ссылок на картинки, магазин, категория, дополнительные параметры типа цвета, и у всего из перечисленного есть индификатор) если я в голове умножаю забыв про ключи, мне представляются оч. большие цифры

грубым подcчетом 300М*1K = 300G

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

AmdY

Пью пиво
Команда форума
WMix
ты сломал мой шаблон, будет время погоняю тесты. странно это всё.
 

WMix

герр M:)ller
Партнер клуба
я не ломал, я хотел было сказать в компании, что продвинутые парни предлагают в данном случае опираться на каучДб... не более того...
 

SANEK333

Новичок
Если понял правильно, то делал что-то подобное, допустим имеется модуль материалы содержащий в себе 3 типа записей папка, статья, файл. Используется одна общая таблица, например структура её такая:
id
type
did
name
info
path
date
size
поле type отвечает за тип записи, туда идет числовая/текстовая константа (например 0-папка, 1-статья, 2-файл), did это ид родительского эллемента, name - имя, date - дата создания, далее поля имеют значения в зависимости от типа
для папки info - описание, path - пусто, либо для сокращения запроса полное имя (папка/подпапка/файл.jpg), size - кол-во вложеных эл-в
для файла path физический путь до файла, info - описание, size - вес
для статьи info - текст статьи, size - кол-во символов, path - пусто, либо для сокращения запроса полное имя (папка/подпапка/статья)
поиск соответственно идет по одинаковым полям в таблице, но в зависимости от типа для пользователя эти поля интерпритируются по разному.
 

craz

Нестандартное звание
это не полный EAV у вас тогда был получается.
 

craz

Нестандартное звание
craz
у него вообще не еав, хаха
он же пишет,

что означает "ваще не понял, о чем тут речь"
не недоEAV там чуточку есть) кстати блин спасибо топику открыл перед собой такую интересную тему.

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

Фанат

oncle terrible
Команда форума
Ты, главное, не забудь, что это антипаттерн.
Я такого гуано нажрался с ним, что теперь на пушечный выстрел близко не подойду.
 

Absinthe

жожо
Ты, главное, не забудь, что это антипаттерн.
Я такого гуано нажрался с ним, что теперь на пушечный выстрел близко не подойду.
А какие варианты на лысом MySQL есть? Или PostgreSQL.

В моем текущем проекте оно десериализовано(в таблицу товаров добавляются пары attrib17, value17) и обновляется триггерами, но данную часть проекта не я делал.
 

craz

Нестандартное звание
Ты, главное, не забудь, что это антипаттерн.
Я такого гуано нажрался с ним, что теперь на пушечный выстрел близко не подойду.
Не не, я даже еще больше убедился, что так делать нельзя было, просто если есть что-то гавневое(сорри за слово), то это гавневое должно быть все таки доведено до абсолюта, чтобы человек раз посмотрел и понял это какой-то полный еав.
В тоже время тут его советовали чуть ли не как ед. решение. Мне кажется все таки, когда ты не понимаешь что делать, лучше сделать так, чтобы другие люди хотя бы поняли, ЧТО ты пытался изобразить, а не строить недоЕАВ.

Up. Кстати пока гуглил увидел реальную ед. среду в которой можно применить этот антипаттерн. Это когда у тебя есть 1-2 месяца на написание системы, денег заказчики проплатили, но рядом не сидит твой тим -лид, у тебя и так мало времени, а заказчик не умеет совершенно свои свистелки описывать в терминах не предметной области, не в терминах понятных для программиста.
В Magento кстати применяется - а я то думал почему она мне из 3-4 раз не разу не далась в плане изменения ядра...
 
  • Like
Реакции: WMix

Redjik

Джедай-мастер
craz
Sphinx решает все проблемы с поиском и типом данных в EAV, так что если с этого разреза смотреть, то не такой уж и антипэттерн
 

craz

Нестандартное звание
craz
Sphinx решает все проблемы с поиском и типом данных в EAV, так что если с этого разреза смотреть, то не такой уж и антипэттерн
То есть берем что-то пипец как не оптимальное по скорости прикручиваем, еще кое-что, что опять же не оптимально по скорости, и получаем не антипаттерн?

Ну может насчет сфинкса я и погорячился... Один фиг.
 

Фанат

oncle terrible
Команда форума
кое-что, что опять же не оптимально по скорости
Это ты про сфинкс?
Ну может насчет сфинкса я и погорячился... Один фиг.
у тебя опять с логикой напряг. "погорячился" и "один фиг" - взаимоисключающие понятия.

А знаешь, всё отчего? Оттого что ты рассуждаешь о вещах, которые не щупал руками. А только по верхам что-то слышал. Поэтому тебе что кауч, что сфинкс - все едино.
Участвуя в разговоре о вещах, с которыми ты не работал, а только слышал о них, следует быть осторожнее в суждениях.
 
Сверху