@proRuby

Страница 294 из 1594
[Anonymous]
01.12.2016
09:13:45
зачем хранить ограниченное количество?
Ну я тебе добавлю бесконечное кол-во полей и сервак ляжет.

Создам огромное кол-во анкет с огромным кол-вом полей.

Alex
01.12.2016
09:16:07
Но полей может быть довольно много на самом деле.

Google
[Anonymous]
01.12.2016
09:16:18
Это все валидациями решается
Мы опять уходим далеко от темы, я про решение с JSON.

Конкретно.

С другими решениями - другие проблемы.

Alex
01.12.2016
09:16:34
Плюс с json появляются проблемы типа "удалил поле, что делать со старыми полями?"

[Anonymous]
01.12.2016
09:16:46
Да хрен с ними, они уникальны для одной анкеты.

Alex
01.12.2016
09:17:04
Ну смотри

у тебя есть список полей с типом

для анкеты. И кто то заполнил анкету

теперь владелец анкеты удалил поле. Как отобразить старое поле?

[Anonymous]
01.12.2016
09:17:39
Где отображать?

В ответе? Ответ сохранит старое поле, оно же в JSON будет.

Alex
01.12.2016
09:17:55
На вебморде

результаты надо же как то агрегировать или отображать.

Google
[Anonymous]
01.12.2016
09:18:06
Анкета - набор полей в JSON.

Ответы - ответы в JSON.

Связи между ними никакой вообще.

Alex
01.12.2016
09:18:22
Теперь ты на вебморде один из результатов заполнения выводишь

Alexander
01.12.2016
09:18:27
Alex
01.12.2016
09:18:27
А тип поля ты не знаешь, что делать?

избыточность?

[Anonymous]
01.12.2016
09:18:35
"key" => "value"

Alex
01.12.2016
09:18:42
Потому что это поле было удалено

[Anonymous]
01.12.2016
09:18:46
Название поля и ответ.

Alex
01.12.2016
09:18:49
поле может хранить дату например

[Anonymous]
01.12.2016
09:18:50
Потому что это поле было удалено
Из всех ответов? Зачем?

Alex
01.12.2016
09:19:00
Оно было удалено из анкеты, а в json ответе осталось

Как отобразить это поле в вебморде теперь?

[Anonymous]
01.12.2016
09:19:16
Оно было удалено из анкеты, а в json ответе осталось
Так и отображать его из ответов. Или не отображать, если так нужно.

Alexander
01.12.2016
09:19:19
Оно было удалено из анкеты, а в json ответе осталось
ты про массив думаешь наверняка, а он про объект

[Anonymous]
01.12.2016
09:19:25
Как отобразить это поле в вебморде теперь?
В чём проблема отобразить ответ на поле "key"?

Alexander
01.12.2016
09:19:28
но с объектом непонятно что будет ключами

[Anonymous]
01.12.2016
09:19:36
Я, право, не понимаю, о чём сейчас речь.

Google
Alex
01.12.2016
09:19:48
ты про массив думаешь наверняка, а он про объект
Есть анкета с полями. Кто то заполнил такую анкету, в дальнейшем называем "Результат". Теперь из структуры самой анкеты снесли поле

[Anonymous]
01.12.2016
09:19:58
Его и показываем. Если не нужно, то не показываем.

Alex
01.12.2016
09:20:06
Теперь мы не знаем как вывести garage_sell_date

потому что мы не знаем его тип.

[Anonymous]
01.12.2016
09:20:19
Мы, видимо, про разные вещи.

Alexander
01.12.2016
09:20:21
ибо не находим в вопросах

если массив — то будут проблемы

[Anonymous]
01.12.2016
09:20:37
ибо не находим в вопросах
Да. Можно сверять структуру с анкетой а можно не сверять.

В зависимости от задачи, опять же.

Alex
01.12.2016
09:21:01
Просто с реляционным подходом это проще решить

Alex
01.12.2016
09:21:39
Впрочем все как правило опирается в задачи бизнес логики, и тогда уже надо выбирать вариант

Где то json очень катит.

Alexander
01.12.2016
09:21:57
условно говоря, anketa.each { |name, type| display answer[name] } и если в answer есть что-то, чего нет в анкете — просто не отобразится

Alex
01.12.2016
09:22:15
ну да, я почему то об этом не подумал.

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

Alexander
01.12.2016
09:22:48
ну да, я почему то об этом не подумал.
а если автор анкеты (ошибся) снова вернёт это поле — у старых ответов не затрётся

Alex
01.12.2016
09:23:16
Закроем тему на основании того что у нас недостаточно данных какое решение лучше именно для того кто спрашивал

Alexander
01.12.2016
09:23:22
Но получается что мы в базе храним поле которого в анкете уже нет. А вот ответить нужно ли хранить данные по удаленному полю или нет может только бизнес.
ну да. тут либо плюшка с возвращением вопроса, либо чистка запросом, особенно страшным, мне кажется, для json

Google
Alex
01.12.2016
09:23:52
Ну у jsonb неприятные такие запросики, и скорость значительно меньше чем у обычных полей.

но для документов jsonb оочень катит.

Alexander
01.12.2016
09:24:37
вспоминая рекомендации «профессионалов масштабирования» много лет назад, нужно на каждую анкету таблицу в бд создавать!

Alex
01.12.2016
09:29:12
Это энтерпрайз

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

Denis
01.12.2016
11:24:08
всем привет, написал метод поиска всех записе по словам из строки def self.search_by_title(title) words = title.to_s.downcase.strip.split.uniq words.map! { |word| "title LIKE '%#{word}%'" } sql = words.join(' OR ') self.where(sql) end но если в строке есть ', то получается беда и пишет Recipe Load (0.6ms) SELECT "recipes".* FROM "recipes" WHERE (title LIKE '%test's%') ORDER BY "recipes"."id" DESC LIMIT 1 ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: syntax error at or near "s" LINE 1: ...ecipes".* FROM "recipes" WHERE (title LIKE '%test's%') ORDE... как это можно решить?)

Admin
ERROR: S client not available

Alex
01.12.2016
11:24:47
потому что надо использовать prepared statements

вместо интерполяции строки

У тебя вообще логика не правильно построена, юзай AR для создания запроса а не сам его рисуй

тогда и prepared statements Будут

Alexander
01.12.2016
11:25:38
http://stackoverflow.com/a/19105790 первый же результат поиска не ленитесь

Alex
01.12.2016
11:25:44
Да и для поиска есть инструмент получше.

Denis
01.12.2016
11:26:29
ок, спасибо всем, ща буду разбираться)

Alex
01.12.2016
11:31:07
для постгресса у нас что то для поиска юзалось

правда потом нам это не понравилось и мы на эластику перешли

но может подойти.

какой?
Вроде этот https://github.com/Casecommons/pg_search

Google
Alexander
01.12.2016
19:42:00
https://www.sitepoint.com/n-1-when-more-queries-is-a-good-thing/ ребят, я правильно понимаю, что (условно) 10 запросов из первого скриншота выполняются суммарно быстрее, чем один запрос из второго скриншота?

Nikolay
01.12.2016
19:43:55
по-моему, суть в том, что 10 запросов с первого скриншота выполняются один раз и кэшируются, а один запрос со второго выполняется каждый раз

Nikolay
01.12.2016
19:44:36
чем угодно

бд, в редис

Alexander
01.12.2016
19:45:04
ну вот мне интересно чем: на уровне БД, или гема, или чего-то ещё

я в sequel с postgresql видел подобную ситуацию и призадумался, нужны ли мне джоины, или обычного игера достаточно

Nikolay
01.12.2016
19:46:00
думаю это актуально, когда во вьюхах отображаются записи и там же кэшируются матрешкой

ну и есть identity_cache, который кэширует запросы к БД

Alexander
01.12.2016
19:46:34
Nikolay
01.12.2016
19:46:45
но мне кажется лучше не ебаться и инклудить

Nikolay
01.12.2016
19:46:49
ну статья хуевая значит

да

в рэдисе

Andrii
01.12.2016
19:47:04
первый скриншот: да они кэшируются и суммарное время выполнения 11 ms, второй 52,2

Nikolay
01.12.2016
19:47:04
или мемкеше

Alexander
01.12.2016
19:47:11
омг, ок, ты меня не слышишь

Страница 294 из 1594