Задать вопрос
nullnull
@nullnull

Правильно ли я создала БД с такими названиями таблиц и нужно ли всегда делать модели для БД для миграции?

Создаю приложение с использованием БД и хочу сделать хорошо, а не на "тяп-ляп". Это мой первый опыт и столкнулась с такой историей. Помогите разобраться, пожалуйста.

1. Названия таблиц.
У меня есть тестовая БД. Чтобы её создавать, я сделала отдельный класс и функции, в функциях прописала все запросы с SQLite, типа CREATE TABLE'ов и тд. Создание БД происходит в 2 этапа: сначала создаются таблицы, которые должны быть всегда в этой БД. а затем, по мере добавления контента (точнее "очень крупных сущностей в проект") в БД, создаются ещё несколько таблиц. У этих новых таблиц специфические имена (такая идея пришла мне для того, чтобы избежать фильтра по одному полю, т.к. предполагается, что данных может быть очень много).
Пример:
Таблица, которая должна быть всегда, называется "page", у неё такие поля, например, id, s_name.
А по мере добавления крупных сущностей (от 1 до 5 предполагается), в таблице page появляются данные, например:
"1, q_test"
"2, w_test"

и две таблицы q_test и w_test соответственно.

Таким способом я пыталась разделить две сущности, чтобы не добавлять в запрос "WHERE s_name = 'q_test' ", например.

И вопрос, нормально ли делать таким образом таблицы или это очень плохая идея и лучше добавить поле и по нему фильтровать, а не брать готовое (т.к. все данные разделены по таблицам)?

2. Модели и миграции
Я знаю, что в правилах запрещено задавать несколько вопросов, но этот вопрос вытекает из 1ого.
Всю ту БД я создавала вручную каждый раз. И при добавлении новой сущности добавлялись новые таблицы в БД.
Сначала меня всё устраивало, но потом я подумала, что нужна веб часть, которой ранее не было, и далее я столкнулась с миграциями в БД.
Проблема в том, что создавая таблицы самостоятельно (напрямую работая с модулем sqlite3 в python), я нигде не описывала модели БД, как получилось в статье по ссылке выше. Более того, эти модели активно стали участвовать в миграциях.

Нужно ли мне всю схему БД переделать под модели или можно миновать модели и в ручную\напрямую добавлять данные в БД ? (sqlite в моём случае). И как быть с миграциями, чтобы синхронизировать копии БД на разных машинах?

Помогите с этим разобраться :)
Если напишите план действий по исправлению ужасов с БД, наверняка они тут есть, буду признательна!
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Стабилизируйте бд . Это главный совет. Миграции лучше применять позже. Есть куча утилит для синхронизации инстансов, в том числе и с разными схемами. В нормальном случае процесс применения миграций выглядит так: вы последовательно выполняете скрипты миграций по порядку. После обновляете кол приложения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽