1
0

Attribute table

This commit is contained in:
2025-02-11 12:25:45 +02:00
parent b9080df675
commit f6ad7c6d65
3 changed files with 57 additions and 12 deletions

View File

@ -1,3 +1,4 @@
*.pdf
other
*.drawio.bkp
other
template.typ

View File

@ -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: [довідник атрибутів (таблиця виконана самостійно)],
) <attributes>
#img("img/logic_model.png", "Логічна модель бази даних (рисунок виконаний самостійно)")

View File

@ -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.