diff --git a/.gitignore b/.gitignore index 6f5ce49..94f5412 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.pdf -other *.drawio.bkp +other +template.typ diff --git a/main.typ b/main.typ index 213843b..447ce4e 100644 --- a/main.typ +++ b/main.typ @@ -4,7 +4,6 @@ #let author = ( name: "Білоус А. А.", full_name_gen: "Білоуса Антона Андрійовича", - variant: 13, // TODO: custom variant. group: "ПЗПІ-23-3", gender: "m", ) @@ -261,11 +260,45 @@ Реляційна модель надає потужні можливості для виконання складних запитів, що є критичним для системи управління пакунками. Це дозволяє ефективно обробляти запити користувачів щодо пошуку пакунків, аналізу залежностей та відношень між ними, а також керування правами доступу через систему ролей. На основі розробленої ER-діаграми @er_diagram було спроєктовано логічну модель бази даних @logic_model. -Для забезпечення точного розуміння відповідності між ER-діаграмою та логічною схемою створено довідник атрибутів /* TODO @attributes */. Цей довідник встановлює однозначну відповідність між термінами, використаними в концептуальній моделі (ER-діаграмі) та їх представленням у логічній моделі бази даних. Особливу увагу приділено відображенню зв'язків між сутностями, що реалізовані через механізм зовнішніх ключів, забезпечуючи цілісність даних та правильну роботу системи контролю версій пакунків. +Для забезпечення точного розуміння відповідності між ER-діаграмою та логічною схемою створено довідник атрибутів @attributes. Цей довідник встановлює однозначну відповідність між термінами, використаними в концептуальній моделі (ER-діаграмі) та їх представленням у логічній моделі бази даних. Особливу увагу приділено відображенню зв'язків між сутностями, що реалізовані через механізм зовнішніх ключів, забезпечуючи цілісність даних та правильну роботу системи контролю версій пакунків. Обрана модель також враховує специфіку роботи з пакунками, їх залежностями та відношеннями, що є ключовим аспектом функціонування репозиторію пакунків. Це дозволяє ефективно відстежувати зміни в пакунках, керувати правами доступу користувачів та забезпечувати надійну основу для колаборації над пакунками. -/* TODO table */ +#figure( + table( + columns: 2, + table.header[ER-діаграма][Логічна модель], + [Архітектура], [arch], + [База пакунку], [base], + [База пакунку], [PackageBases], + [Веб-покликання], [url], + [Версія], [version], + [Відношення], [PackageRelations], + [Дата логіну], [last_used], + [Дата оновлення], [updated_at], + [Дата позначення], [flagged_at], + [Дата створення], [created_at], + [Електронна пошта], [email], + [Залежність], [PackageDependencies], + [Ім'я], [name], + [Коментар], [comment], + [Користувач], [user], + [Користувач], [Users], + [Назва], [name], + [Назва залежного пакунку], [dependency_package_name], + [Назва пакунку з яким є відношення], [relation_package_name], + [Опис], [description], + [Пакунок], [Packages], + [Пароль], [password], + [Роль], [PackageBaseUserRoles], + [Тип відношення], [RelationTypes], + [Тип залежності], [DependencyTypes], + [Тип ролі], [role], + [Тип ролі], [PackageBaseRoles], + [Умова], [requirement], + ), + caption: [довідник атрибутів (таблиця виконана самостійно)], +) #img("img/logic_model.png", "Логічна модель бази даних (рисунок виконаний самостійно)") diff --git a/template.typ b/template.typ index 6f8a866..a3ee8fd 100644 --- a/template.typ +++ b/template.typ @@ -101,6 +101,8 @@ // figures set figure.caption(separator: [ -- ]) + show figure.where(kind: table): set figure.caption(position: top) + show figure.caption.where(kind: table): set align(left) let img = counter("image") let tab = counter("table") @@ -118,17 +120,26 @@ }, ) - // appearance of references to images + // appearance of references to images and tables show ref: it => { let el = it.element - if el != none and el.kind == image { - link( - el.location(), - [(див. рис. #numbering(el.numbering))], - ) - } else { - it + + if el == none or not el.has("kind") { + return it } + + let el_name = if el.kind == image { + "рис." + } else if el.kind == table { + "таблицю" + } else { + return it + } + + link( + el.location(), + [(див. #el_name #numbering(el.numbering))], + ) } // TODO: Maybe this will be better. Must be investigated.