TGViewer
DevFM DevFM @devfm · 3.05K subscribers
Post #562 2.08K
Life Altering Postgresql Patterns

Постгрю я, конечно, люблю не так сильно, как питон, но всё равно периодически посматриваю на хорошие практики.

В статье автор дает несколько полезных советов при работе с постгрей. За некоторым исключением, во многом с ним согласен.

🔹 UUID вместо автоинкремента — если работаешь с распределёнными системами или API, лучше сразу использовать uuid DEFAULT gen_random_uuid(). Избавит от проблем с конфликтами ID

🔹 created_at / updated_at — каскадное удаление может привести к неожиданным потерям данных. Лучше контролировать процесс вручную

🔹ON DELETE RESTRICT вместо CASCADE — защищает от случайного удаления связанных данных. Лучше удалять вручную при необходимости

🔹Используйте схемы — не нужно всё пихать в public, схемы помогают логически разделить данные

🔹Таблицы вместо ENUM — если нужно хранить фиксированный набор значений, лучше делать это в отдельной таблице. Всегда так делал, а ещё удивляюсь, что иногда енамки хранятся на уровне кода

🔹Таблицы в единственном числе — user вместо users. Логичнее: одна строка = один объект. Хотя наверняка найдутся сторонники другого подхода

🔹Soft delete вместо удаления — автор убеждён, что хранение дешевле, чем восстановление данных, и почти всегда рекомендует soft delete (deleted_at TIMESTAMP NULL)

🔹 JSONB вместо сложных JOIN'ов — удобно для метаданных и настроек, если структура может меняться. Но я бы тут осторожно подходил к такому решению. Например, что будет со старыми данными, если формат json поменяется? А не будет ли проблем с TOAST? На эти темы у нас были отдельные посты: раз, два

🔹Понятные имена join-таблиц — просто объединяйте имена связываемых таблиц и не городите чего-то этакое

#database
Telegram DevFM Работа с json в PostgreSQL Цикл супер-полезных практических заметок о работе с json в PostgreSQL. Затрагиваются вопросы: — чем json отличается от jsonb — как парсить json. В том числе: извлечение поля из json-объекта, получение тип данных, проверка существования…
  • 👍 12
  • 🔥 3
  • ❤ 1
More from @devfm
  1. Sep 19, 2026ММММолния! В последнем обновлении Claude Code добавили поддержку AGENTS.md! Это настоящий…
  2. Sep 17, 2026Код пишется быстро, а што с ревью Я как-то уже бухтел на тему код-ревью. Но мир так быстро…
  3. Sep 15, 2026Не пишите аислопный текст, пожалуйста-препожалуйста. Код супер активно пишется агентами и…
  4. Sep 14, 2026Что там с кодинговыми агентами Я тут немного пропустил, а JetBrains поделились результатам…
  5. Sep 13, 2026Что OpenAI советует при работе с GPT-6 Astra Относительно недавно вышла GPT-6 Astra, и я р…
  6. Sep 7, 2026Фича из 2015-го для агентов в 2026-м Можно годами пользоваться гитом и ничего не знать про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →