раздел 07

Шпаргалка: как выбрать

Весь курс сводится к одному вопросу - где хранить данные в конкретном случае. Эта страница даёт быстрый ответ: дерево решений, таблицу сравнения и сигналы перехода на следующую ступень.

Дерево решений

Отвечайте по порядку, остановитесь на первом подходящем:

  1. Данные должны пережить перезапуск программы? Нет -> переменная в памяти. Готово.

  2. Данных мало и они простые (список строк, настройки)? Да, и это таблица -> CSV. Да, и есть вложенность/типы -> JSON-файл.

  3. Нужен быстрый поиск, фильтры, частые правки отдельных записей или связи между данными? Да -> база данных. Начните с SQLite.

  4. К данным нужен доступ с разных устройств / у многих пользователей одновременно? Да -> серверная или облачная БД (PostgreSQL, Supabase) + API.

  5. Это мобильное приложение с реалтаймом или гибкой структурой? Да -> присмотритесь к Firebase / NoSQL.

Таблица: что когда брать

СитуацияРешение
Промежуточные вычисления, состояние страницыПеременная
Лог, заметки, простой список строкТекстовый файл
Таблица для Excel, выгрузка, аналитикаCSV
Настройки, конфиг, данные с вложенностьюJSON
Прототип с поиском и правками, десктоп/ботSQLite
Сайт с пользователями без возни с серверомSupabase (Postgres в облаке)
Прод на своём сервере, сложные запросыPostgreSQL
Мобайл, реалтайм, гибкая схемаFirebase / MongoDB

Сигналы «пора на следующую ступень»

  • Переменная -> файл: «данные пропадают при перезапуске, а должны оставаться».
  • TXT -> CSV/JSON: «у каждой записи появился набор полей, голый текст неудобен».
  • CSV -> JSON: «в данных появилась вложенность или важны типы».
  • Файл -> база: «поиск тормозит, правки отдельных записей неудобны, пишут одновременно».
  • SQLite -> сервер: «несколько серверов/много пользователей пишут разом».

Три правила, которые экономят время

  1. Берите самый простой способ, которого хватает. Не заводите PostgreSQL ради списка из десяти пунктов.
  2. Переходите вправо по реальной боли, а не на всякий случай. Сигнал перехода всегда конкретный - тормозит, ломается, не помещается.
  3. Секреты и доступы - в .env, не в код и не в git. Пароли от базы и API-ключи никогда не попадают в репозиторий.

Подразделы