Введение
При создании лендинговых страниц, для работы систем которые работают с деловым документооборотом актуальной является модель данных для хранения многоверсионных документов. Так же эта задача актуальна для формирования цифрового следа, который остаётся при работе пользователя.
Лучше всего для этого подходит модель данных которую называют Документ — Версия — Файл.
Далее будет небольшая заметка с моделями данных для back-end и front-end.
Back-end

Пример показан выше, основные сущности это Document, Version, File. Вспомогательная сущность DocumentType предназначена для обозначении типа документа паспорт, диплом, акт выполненных работ и т.д. С документом могут быть связаны атрибуты или назначены поля (номер договора, наименование документа и т.п.)
Front-end
Для отображения актуальной версии мы можем использовать следующую структуру данных.
{
"DocumentId": 1,
"Version": 1,
"VersionCount": 1,
"VersionId": 1,
"CreatedAt": 1613657239,
"UpdatedAt": null,
"type": {
"typeId": 1,
"typeName": "Паспорт РФ"
}
"FilesCount": 1,
"Files": [{
"md5": "",
"name": "",
"url": ""
}
]
}
Данная модель позволяет получить все файлы документа актуальной версии. Если версий много, для получении необходимой версии в запросе необходимо указать идентификатор документа и номер версии.