wiki:RelationalModel

Version 2 (modified by 231130, 2 weeks ago) ( diff )

--

Relational Model

1. Основни табели

Objects

  • PK: object_id
  • Attributes: inventory_number (UNIQUE), title, creation_year, acquisition_date, description
  • FK: site_id → Sites, current_status_id → Status_Types, found_by_user_id → Users
  • Description: Централна табела која ги претставува културните објекти (артефакти) и ги поврзува со сите останати ентитети во системот.

Sites

  • PK: site_id
  • Attributes: site_name, latitude, longitude, altitude, discovery_year, is_active
  • FK: site_type_id → Site_Types, region_id → Regions, protection_status_id → Protection_Status, municipality_id → Municipalities
  • Description: Содржи податоци за археолошки локалитети со географски и административни информации.

Users

  • PK: user_id
  • Attributes: username (UNIQUE), full_name, email (UNIQUE), password_hash
  • FK: role_id → Roles
  • Description: Регистрирани корисници на системот со дефинирани улоги.

Institutions

  • PK: institution_id
  • Attributes: name (UNIQUE), address, city
  • Description: Институции (музеи, лаборатории, универзитети) кои управуваат со објектите.

Publications

  • PK: publication_id
  • Attributes: title, request_date, publisher_location
  • FK: status_id → Status_Types, main_author_id → Authors
  • Description: Научни публикации поврзани со артефактите.

Treatments

  • PK: treatment_id
  • Attributes: treatment_date, description
  • FK: object_id → Objects
  • Description: Евиденција на конзервациски третмани применети врз објектите.

Fragments

  • PK: fragment_id
  • Attributes: description, discovery_date
  • FK: site_id → Sites, object_id → Objects, found_by_user_id → Users, status_id → Status_Types, parent_fragment_id → Fragments
  • Description: Моделира делови од артефакти со поддршка за хиерархиска (self-referencing) структура.

Conservation_Projects

  • PK: project_id
  • Attributes: project_name, start_date, end_date, budget
  • FK: institution_id → Institutions, object_id → Objects
  • Description: Проекти поврзани со конзервација и реставрација.

Exhibitions

  • PK: exhibition_id
  • Attributes: name, start_date, end_date
  • FK: location_institution_id → Institutions
  • Description: Изложби во кои се прикажуваат објектите.

Condition_Assessment

  • PK: assessment_id
  • Attributes: assessment_date, notes
  • FK: object_id → Objects, status_id → Status_Types
  • Description: Проценка на физичката состојба на објектите низ време.

2. Помошни (Junction) табели

Овие табели се користат за решавање на M:N релации:

  • Object_Publication (object_id, publication_id) — Objects <-> Publications
  • Object_Exhibition (object_id, exhibition_id) — Objects <-> Exhibitions
  • Publication_Authors (publication_id, author_id) — Publications <-> Authors
  • Materials_Objects (object_id, material_id) — Objects <-> Materials
  • Treatment_Materials (treatment_id, material_id) — Treatments <-> Materials

3. Ограничувања (Constraints)

За обезбедување на интегритет на податоците се применети следните ограничувања:

  • UNIQUE: inventory_number (Objects), username, email (Users), site_name + region_id (Sites).
  • CHECK: Географски координати во дозволен опсег за Македонија.
  • CHECK: Валидност на датуми (end_date >= start_date).
  • CHECK: Година на создавање (creation_year) не е во иднината.
  • CHECK: fragment_id <> parent_fragment_id (спречување на директен цикличен однoс).
  • FOREIGN KEY: Обезбедуваат референтен интегритет помеѓу сите поврзани табели.

4. Дизајн одлуки

  • M:N релациите се реализирани преку посебни junction табели со composite primary keys за подобра нормализација.
  • Self-referencing е имплементиран кај Fragments за моделирање на делови од објекти и нивна хиерархиска поврзаност.
  • Status_Types е генерализирана табела која овозможува унифицирано управување со различни типови статуси преку полето "type".
  • User_Details е издвоена табела со цел дополнителна нормализација и оптимизација на пребарувањето.
  • Object_Location_History овозможува целосно следење на движењето на објектите низ времето.
  • Treatment_Step_Log овозможува прецизно и детаљно евидентирање на секоја фаза од конзервациските процеси.

5. Дијаграм

No image "diagram.jpg" attached to RelationalModel

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.