Pull to refresh

Comments 13

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

У нас было примерно так же, только разработчик решил во все поля складывать JSON. Через ORM все работало неплохо, но потом возникла необходимость писать SQL запросы к этой базе. Это был просто ад )

Что я могу сказать - пользуйтесь PostgreSQL, она хорошо умеет в JSON в базе.

UFO landed and left these words here

Куча ошибок перевода.

Water hole это не водопой (который обычно на реке), а колодец. Оно и естественно: чтобы река была грязной, надо было очень постараться, с колодцем это гораздо легче.

У шамана диск в RAID-конфигурации был, все-таки, не на столе, на в стационарном компьютере (desktop).

Код свой Гилфойл не "не проверял" (checked), а "не вносил в систему контроля версий (checked in).

Это я пока только до половины оригинал прочитал.

Добавлю пару историй:

  1. куча почти одинаковых таблиц (30+) в PostgreSQL. Одна триггерная функция для всех этих таблиц, которая выполняет буквально одну строчку:

:new.is_update := 1;
  1. куча почти одинаковых таблиц (30+) но теперь в Oracle DB. Версия СУБД старая и не поддерживает автоинкремент. Стандартным решением является создание вручную последовательностей для каждой таблицы и триггеров для вставки. Так вот история почти один-в-один с SequenceKey из статьи: для всех таблиц используется одна общая последовательность для генерации уникальных значений первичных ключей.

Ещё история из недавнего: огромная поисковая форма с десятками фильтров и сортировок (внутри ещё более монструозный sql-запрос). Каждый запрос к форме выполняется около 10 секунд. Внутренних клиентов это полностью устраивает.

Приходит жалоба, что форма перестала открываться и отваливается по таймауту (10 минут!). Проверяем, этот же запрос на СУБД вся так же стабильно отрабатывает за 10 секунд, но никак не висит более за 10 минут. Причину так и не нашли. Сделали временную таблицу и кнопку "Заполнить значения". После нажатия кнопки данные из sql-запроса копировались во временную таблицу и дальше работа с фильтрами и сортировками шла только с этой временной таблицей. Любые запросы стали выполняться мгновенно!

Даже когда я закончил среднюю школу, я полагал, что мир «профессиональной разработки» выглядит совсем иначе, чем код, который я писал в свободное время

Значит вам удалось попасть лишь в недалекую галеру с такими же маслятами у руля.

Нормальные кодовые базы может быть не всегда соответствуют всем идеалам, вроде соблюдения всех форм нормализации данных в бд или какой-нибудь Чистой Архитектуры, но уж точно лучше того, что вы описали на порядки

Sign up to leave a comment.

Articles