wiki:RelationalDesign

Релациско мапирање

Ознаки

Во продолжение се користат следните конвенции при опишување на релациското мапирање:

  • Секој примарен клуч е визуелно означен со болдирање и подвлекување и е означен како PK.
  • Атрибутите кои претставуваат надворешни клучеви се означени со FK*, при што во заграда е наведена табелата и атрибутот кон кој се врши референцирање.
  • Атрибутите кои мора задолжително да имаат вредност (NOT NULL) се болдирани.
  • Атрибутите со услов за единственост во рамки на табелата се дополнително означени со (UNIQUE).
  • За составна единственост (composite unique) се користи ознака: (UNIQUE: A + B).

Овие ознаки овозможуваат појасно разбирање на структурата на базата на податоци и релациите помеѓу табелите.

Табели

  1. Tenants (id PK, name, owner_email, created_at)
  1. Users (id PK, email (UNIQUE), name, picture, created_at)
  1. Memberships (user_id PK FK*(Users.id), tenant_id PK FK*(Tenants.id), role, created_at) *Забелешка:* Memberships има составен примарен клуч: (user_id, tenant_id).
  1. Environments (id PK, tenant_id FK*(Tenants.id), name, created_at, (UNIQUE: tenant_id + name))
  1. ENV_Tokens (id PK, tenant_id FK*(Tenants.id), env_name, token (UNIQUE), created_at, expires_at)
  1. Computers (id PK, tenant_id FK*(Tenants.id), env_name, name, user, ip, os, first_seen, last_seen, sysmon_available, (UNIQUE: tenant_id + name))
  1. Computer_history (id PK, computer_id FK*(Computers.id), cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
  1. Computer_processes_current (id PK, computer_id FK*(Computers.id), pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
  1. Computer_processes_history (id PK, computer_id FK*(Computers.id), pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
  1. Sysmon_events

(id PK, computer_id FK*(Computers.id), event_id, event_type, message, timestamp, details)

  1. Network_connections

(id PK, computer_id FK*(Computers.id), pid, local_address, remote_address, status, process_name, timestamp)

  1. Security_alerts

(id PK, computer_id FK*(Computers.id), alert_type, severity, description, timestamp, resolved)

  1. Env_settings

(tenant_id PK FK*(Tenants.id), env_name PK, save_process_history, created_at, updated_at)

Забелешки за дизајнот

  • Табелата Computer_processes_current содржи само моментална snapshot состојба на процесите.
  • Табелата Computer_processes_history се користи само ако е овозможено снимање на историја преку Env_settings.
  • Табелата Env_settings овозможува конфигурација по environment без потреба од глобални флагови.
  • Не се користи посебна табела за admin sessions – автентикацијата се реализира преку JWT cookie.

DDL скрипта за креирање на табелите

ddl_sql.sql

DML скрипта за полнење на табелите со податоци

dml.sql

Релациски дијаграм

Last modified 2 weeks ago Last modified on 01/22/26 19:27:45

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.