Skip to content

Схема данных

MilTy edited this page Nov 26, 2020 · 3 revisions

На данный момент схема данных выглядит так:
В базе данных хранятся записи трёх типов - каждый в соответствующей ему коллекции.

User: - объект, отображающий пользователя приложения
> username :string - уникальное имя пользователя
> name :string - неуникальное, изменяемое имя пользователя
> password_hash :int - хэш пароля пользователя, созданный при помощи простой функции хэширования
> presentations :array<objectid> - массив, содержащий уникальные идентификаторы объектов презентаций, хранящихся в базе данных, которые принадлежат этому пользователю
> is_admin :boolean - флаг, обозначающий, является ли пользователь администратором приложения

Presentation: - объект, отображающий презентацию, разные версии которой были проверены один или несколько раз
> name :string - глобально неуникальное имя презентации, которое уникально в расках полльзователя (e.g. одному пользователю не могут принадлежать две презентации с одинаковыми именами)
> checks :array<objectid> - массив, содержащий уникальные идентификаторы объектов проверок, хранящихся в базе данных, которые относятся к этой презентации
> _id :objectid - уникальный идентификатор презентации

Checks: - объект, отображающий проведённую проверку презентации, во всех полях содержится число -1, если проверка проведена не была и строка, если была
> slides_number :string | int - показатель, была ли успешна проверка количества основных слайдов в презентации, содержит ?
> slides_enum :string | int - показатель, была ли успешна проверка пронумерованности слайдов презентации, содержит пустую строку если проверка была усепшна и номера проблемных слайдов, если нет
> slides_headers :string | int - показатель, была ли успешна проверка длины заголовков слайдов, содержит пустую строку если проверка была усепшна и номера проблемных слайдов, если нет
> goals_slide :string | int - показатель, была ли успешна проверка на присутствие слайда "Цели и задачи", содержит номер слайда, если он был найден и пустую строку, если нет
> probe_slide :string | int - показатель, была ли успешна проверка на присутствие слайда "Апробация работы", содержит номер слайда, если он был найден и пустую строку, если нет
> actual_slide :string | int - показатель, была ли успешна проверка на присутствие слайда "Актуальность работы", содержит номер слайда, если он был найден и пустую строку, если нет
> conclusion_slide :string | int - показатель, была ли успешна проверка на наличие слайда с заключением, содержит ?
> _id :objectid - уникальный идентификатор проверки