172 похожих чатов

Парни, привет. Для каких целей правильно будет использовать JSON поля

в постгре?
Для того чтобы избегать null в ячейках?

9 ответов

9 просмотров

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

Роман Жарков
А это вообще из серии "вредные советы".

Почему же? Если складываешь в json - значит происходит какая-то херня.

Стас-Донцов Автор вопроса
Евгений Смирнов
Для всякого хлама и нужно ) Т.е. когда вы не увере...

тогда это как отстойник можно использовать: внутри проекта устоялось понимание того, что поле "field":123 которое сейчас хранится в json будет здесь и всегда - вытащил его оттуда и добавил как обычный столбец таблицы.. как один из вариантов применения - верно понял?

Евгений Смирнов
Почему же? Если складываешь в json - значит происх...

Представьте, что вы по API от некоего источника получаете данные, структурой которых не управляете. То есть может придти всё, что угодно. Но при этом вам нужно обеспечить фиксацию факта запроса и ответа Вот вам и json

Стас-Донцов Автор вопроса
Альберт Степанцев
Представьте, что вы по API от некоего источника по...

ну кстати этот вариант тоже используется: например так у нас хранят историю изменений, само изменение всегда разное и по этой причине лижит в json (там может от одного поля до 10 поменяться в рамках запроса в API)

Стас Донцов
тогда это как отстойник можно использовать: внутри...

Наверное лучше обозначить, почему JSON опасен: 1. Вы лишаетесь уверенности, что там лежит именно то, что вы ожидаете. Вы ждёте, что там всегда массив, но кто-то может впендюрить NULL (причём либо SQL NULL, либо JSON null), может бахнуть скаляр или объект. Массив может внезапно стать объектом. 2. Неэффективное хранение. Названия ключей тоже занимают место. 3. Неэффективный поиск.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта