Version 18 (modified by 7 hours ago) ( diff ) | ,
---|
Entity Relationship Diagram
ER дијаграмот ја прикажува структурата на податоците во апликацијата Reportium. Преку него се дефинираат ентитетите, нивните атрибути, како и релациите помеѓу нив. Овој дијаграм служи како основна водилка за дизајнирање на базата на податоци.
Податочни побарувања
Ентитети
Силни ентитети
- Person
- Primary Key (PK): person_id - integer
- Attributes:
- name - text
- surname - text
- address - text
- gender - enum (MALE, FEMALE)
- date_of_birth - date
- date_of_death - date
- contact_phone - text
- is_alive - boolean
- is_stub - boolean
- embg - text
- Institution
- Primary Key (PK): institution_id - integer
- Attributes:
- name - text
- address - text
- type - enum (PRIMARY SCHOOL, HIGH SCHOOL, UNIVERSITY, ACADEMY)
- year_established - integer
- city - text
- Report
- Primary Key (PK): report_id - integer
- Attributes:
- report_type - enum (CRIMINAL, MEDICAL, ACADEMIC, EMPLOYMENT)
- created_at - date
- summary - text
- person_id - (Foreign Key to Person Entity) - integer
- CrimeType
- Primary Key (PK): crime_type_id - integer
- Attributes:
- label - text
- severity_level - enum (LOW, MEDIUM, HIGH)
- Diagnosis
- Primary Key (PK): diagnosis_id - integer
- Attributes:
- description - text
- therapy - text
- severity - enum (LOW, MEDIUM, HIGH)
- is_chronic - boolean
- Doctor
- Primary Key (PK): doctor_id - integer
- Attributes:
- surname - text
- years_of_experience - integer
- specialization - text
- name - text
- is_active - boolean
- Role
- Primary Key (PK): role_id - integer
- Attributes:
- role_name - integer
- description - text
- FilterSession
- Primary Key (PK): session_id - integer
- Attributes:
- filter_description - text
- searched_at - timestamp
- user_id - (Foreign Key to ReportiumUser Entity)
- ReportiumUser
- Primary Key (PK): user_id - integer
- Attributes:
- password_hash - text
- is_active - boolean
- email - text (email)
- surname - text
- name - text
- created_at - timestamp
- UserProfile
- Primary Key (PK): profile_id - integer
- Attributes:
- profile_created_at - timestamp
- user_id - (Foreign Key to ReportiumUser Entity)
- username - text
- role_id - (Foreign Key to Role Entity)
Слаби ентитети
- Punishment
- Primary Key (PK): punishment_id - integer
- Attributes:
- value_unit - enum (EUROS, YEARS)
- punishment_type - enum (FINE, PRISON)
- fine_to_pay - double
- release_date - date
- report_id - (Foreign Key to Report Entity)
- UserProfileLog
- Primary Key (PK): log_id - integer
- Attributes:
- change_description - text
- profile_id - (Foreign Key to UserProfile Entity)
- changed_at - timestamp
- ExportLog
- Primary Key (PK): export_id - integer
- Additional Attributes:
- export_date - timestamp
- export_format - enum (CSV, PDF)
- filter_summary - text
- file_name - text
- session_id - (Foreign Key to FilterSession Entity)
Подтипови на Report ентитетот
- AcademicReport
- Primary Key (PK): report_id (inherited)
- Additional Attributes:
- institution_id - (Foreign Key to Institution Entity)
- academic_field - text
- description_of_report - text
- CriminalReport
- Primary Key (PK): report_id (inherited)
- Additional Attributes:
- location - text
- resolved - boolean
- crime_type_id - (Foreign Key to CrimeType Entity)
- descriptive_punishment - text
- MedicalReport
- Primary Key (PK): report_id (inherited)
- Additional Attributes:
- doctor_id - (Foreign Key to Doctor Entity)
- next_control_date - date
- EmploymentReport
- Primary Key (PK): report_id (inherited)
- Additional Attributes:
- position_description - text
- start_date - date
- end_date - date
- income_per_month - double
Релаци
- UserProfile - UserProfileLog: 1 - N релација каде еден кориснички профил може да има повеќе логови, а еден лог може да припаѓа само на еден и единствен кориснички профил. Оваа релација е со целосно учество од обете страни
- UserProfile - ReportiumUser: 1 - 1 релација каде еден кориснички профил може да има еден кориснички профил, и обратно. Оваа релација е со целосно учество од обете страни
- UserProfile - Role: N - 1 релација каде еден кориснички профил може да има една улога, а улогата може да е поседувана од повеќе кориснички профили. Оваа релација е со целосно учество од страната на UserProfile
- UserProfile - FilterSession: 1 - N релација каде еден кориснички профил може да има повеќе филтрирачки сесии, а една сесија припаѓа на само еден корисник. Оваа релација е со целосно учество од страната на FilterSession
- FilterSession - ExportLog: 1 - N релација каде една сесија има повеќе exports, а еден таков export е само на една сесија. Оваа релација е со целосно учество од обете страни
- FilterSession - Person: 1 - N релација каде една филтер сесија има повеќе Person објеќти вклучено, додека пак еден Person може да учествува во повеќе такви сесии
- Person - Report: 1 - N релација каде еден person има повеќе извештаи, додека пак еден извештај му припаѓа на само еден person. Оваа релација е со целосно учество од страна на Report
- Релацијата на Report со AcademicReport/MedicalReport/CriminalReport/EmploymentReport - еден Report објект е како абстрактната класа која ја наследува еден од четирите напоменати типови. Тоа значи дека тука има појава на disjoint, односно специјализирање во САМО ЕДЕН ОД МОЖНОСТИТЕ
- AcademicReport - Institution: N - 1 релација каде еден академски извештај може да има една институција, а истата може да биде во повеќе академски извештаи. Оваа релација е со целосно учество на страна на AcademicReport
- CriminalReport - CrimeType: 1 - 1 релација каде еден криминален извештај има свој 1 CrimeType, а тој може да биде поседун од повеќе CriminalReports. Оваа релација е со целосно учество на страна на CriminalReport
- CriminalReport - Punishment: 1 - 1 релација каде еден криминален извештај има својa 1 казна, која припаѓа само на тој криминален извештај. Оваа релација е со целосно учество од обете страни
- MedicalReport - Diagnosis: N - 0..M оваа many-to-many релација посочува дека еден медицински извештај може да има повеќе дијагнози, а и една дијагноза да припаѓа на разл. медицински извештаи
- MedicalReport - Doctor: 1 - N релација каде еден медицински извештај има 1 доктор, а докторот може да биде назначен на повеќе различни медицински извештаи. Полно учество е на страна на MedicalReport
Attachments (1)
- final_er_diagram.jpg (240.8 KB ) - added by 17 hours ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.