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

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

  

**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 в моём случае). И как быть с миграциями, чтобы синхронизировать копии БД на разных машинах?  

  

Помогите с этим разобраться :)   

Если напишите план действий по исправлению ужасов с БД, наверняка они тут есть, буду признательна! 

 Стабилизируйте бд . Это главный совет. Миграции лучше применять позже. Есть куча утилит для синхронизации инстансов, в том числе и с разными схемами. В нормальном случае процесс применения миграций выглядит так: вы последовательно выполняете скрипты миграций по порядку. После обновляете кол приложения.