Как организовать модель данных в Django?

Есть задача создать справочник для внутреннего использования в компании. Данные в него будут импортироваться из двух CSV файлов, полученных с госуслуг. Использовать предполагаю DJANGO и PostgreSQL.
Структура исходных файлов, получаемых с госуслуг :
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "Name": {
        "description": "Наименование",
        "type": "string",
        "maxLength": 500
      },
      "Idx": {
        "description": "Индекс",
        "type": "string",
        "maxLength": 10
      },
      "Razdel": {
        "description": "Код раздела",
        "type": "string",
        "maxLength": 1
      },
      "Kod": {
        "description": "Код",
        "type": "string",
        "maxLength": 12
      },
      "Nomdescr": {
        "description": "Описание",
        "type": "string",
        "maxLength": 8000
      },
      "global_id": {
        "description": "global_id",
        "type": "number"
      }
    },
  }
}

Данные в исходных файлах неоднородны- в вышеописанной структуре будут и непосредственно элементы справочников(когда все поля заполнены), и элементы-группы (когда поле "Код" и "Раздел" будут пусты).
Данные полученные из двух файлов необходимо связать по части поля "Код", причем связь будет присутствовать не всегда. Пример: на скрине ниже поле Kod двух справочников имеет связь
64a964089124c371061595.png
Однако если на позициях 8-9-10 поля Kod справочника2 стоят 000, то к этому полу отсутствует соответствующее значение справочника1. Пример:
64a9650b2bd2c718911404.png
Импорт файлов с госуслуг необходимо проводить 1 раз в неделю, каждый раз получая полный перечень актуальных данных. Необходимо хранить историю всех изменений данных (видеть какие новые данные появились при загрузке, а какие утратили актуальность и в исходном файле отсутствовали).
Вопросы:
1. Как организовать модели данных и связь полей Kod справочников(предполагаю, для организации связей между справочниками и выделения групп справочников необходимо использовать промежуточные модели)?
2. Как осуществить хранение истории изменений при импорте? Вижу вариант такой- добавить в модель каждого справочника поля статус и дата изменения, при импорте в имеющихся актуальных записях справочника обновлять дату, новые записи в справочник добавлять и ставить дату добавления, после импорта в записях, в которых дата не изменилась - изменить статус и актуализировать дату. Хотя при таком варианте база быстро "распухнет", подскажите, кто знает другие решения.

P.S.: не пинайте ногами это мой первый вопрос
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы