У меня есть данные финансовой отчетности по тысячам различных компаний. У некоторых компаний есть данные только за 2019 год, но для некоторых у меня есть данные за десятилетие. Каждая финансовая отчетность компании имеет свою собственную таблицу, структурированную следующим образом со столбцами, выделенными жирным шрифтом:
lineitem --- 2019 --- 2018 --- 2017
2 ..... .......... 1000 .... 800 ..... 600
3206 ........... 700 .... 300 ....- 200
56 ................. 50 .... 100 ..... 100
200 ........... 1200 .. .... 90 ..... 700
Эта структура предпочтительнее более плоской файловой структуры, такой как lineitem-year-amount, так как один запрос дает мне правильную структуру вывода для таблицы финансового отчета , lineitem - это внешний ключ, связывающий первичный ключ таблицы сопоставления с более чем 10 000 записей. 3206 может означать, например, «Долг перед кредитными учреждениями». У меня также есть таблица companyIndex, в которой есть идентификатор компании, название компании и имя таблицы. Я могу получить данные в базу данных и выполнять запросы с использованием sqlite3 в python, но сложные запросы иногда являются проблемой, не говоря уже о том, что это может занять много времени и не очень читабельно. Мне нравится потенциал использования ORM в Django или SQLAlchemy. ORM в SQLAlchemy, кажется, хочет, чтобы я знал имя таблицы, которую я собираюсь создать, и хочу, чтобы я знал, сколько столбцов создать, но я не знаю этого, так как у меня есть скрипт, который анализирует дамп данных в csv, который включает в себя идентификатор компании и данные финансовой отчетности за количество лет работы. Кроме того, через год мне придется обновить таблицу еще одним годом данных.
Я смотрел и читал учебные пособия Django и SQLAlchemy, но не смог испытать это слишком много в практика из-за этой первоначальной проблемы, которая является предпосылкой для успеха в моем проекте. Я гуглил и гуглил, и проверял стекозахват для решения, но не нашел никаких решенных вопросов (что действительно удивительно, поскольку я всегда нахожу решение здесь).
Так как я могу вставить данные, используя Django / SQLAlchemy, учитывая структуру, в которую я планирую вписаться? Как можно, чтобы выбранные таблицы (на основе идентификатора компании или названия компании) были объектами в ORM, как и любой другой объект, позволяющий мне выбирать нужные данные на желаемом уровне детализации? В идеале решение этой проблемы есть в Django, но, поскольку я ничего не нашел, я подозреваю, что его нет или то, как я структурировал базу данных, является безумием.