| Version 9 (modified by , 2 weeks ago) ( diff ) |
|---|
Релациско мапирање
Ознаки
Во продолжение се користат следните конвенции при опишување на релациското мапирање:
- Секој примарен клуч е визуелно означен со болдирање и подвлекување и е означен како PK.
- Атрибутите кои претставуваат надворешни клучеви се означени со FK*, при што во заграда е наведена табелата и атрибутот кон кој се врши референцирање.
- Атрибутите кои мора задолжително да имаат вредност (NOT NULL) се болдирани.
- Атрибутите со услов за единственост во рамки на табелата се дополнително означени со (UNIQUE).
- За составна единственост (composite unique) се користи ознака: (UNIQUE: A + B).
Овие ознаки овозможуваат појасно разбирање на структурата на базата на податоци и релациите помеѓу табелите.
Табели
- Tenants (id PK, name, owner_email, created_at)
- Users (id PK, email (UNIQUE), name, picture, created_at)
- Memberships (user_id PK FK*(Users.id), tenant_id PK FK*(Tenants.id), role, created_at) *Забелешка:* Memberships има составен примарен клуч: (user_id, tenant_id).
- Environments (id PK, tenant_id FK*(Tenants.id), name, created_at, (UNIQUE: tenant_id + name))
- ENV_Tokens (id PK, tenant_id FK*(Tenants.id), env_name, token (UNIQUE), created_at, expires_at)
- Computers (id PK, tenant_id FK*(Tenants.id), env_name, name, user, ip, os, first_seen, last_seen, sysmon_available, (UNIQUE: tenant_id + name))
- Computer_history (id PK, computer_id FK*(Computers.id), cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
- Computer_processes_current (id PK, computer_id FK*(Computers.id), pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
- Computer_processes_history (id PK, computer_id FK*(Computers.id), pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
- Sysmon_events
(id PK, computer_id FK*(Computers.id), event_id, event_type, message, timestamp, details)
- Network_connections
(id PK, computer_id FK*(Computers.id), pid, local_address, remote_address, status, process_name, timestamp)
- Security_alerts
(id PK, computer_id FK*(Computers.id), alert_type, severity, description, timestamp, resolved)
- 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 скрипта за креирање на табелите
DML скрипта за полнење на табелите со податоци
Релациски дијаграм
Attachments (6)
- Untitled (1).png (166.1 KB ) - added by 3 weeks ago.
- Diagram1.png (166.1 KB ) - added by 3 weeks ago.
- Untitled.png (194.2 KB ) - added by 3 weeks ago.
- ddl_sql.sql (3.8 KB ) - added by 3 weeks ago.
- dml.sql (4.5 KB ) - added by 3 weeks ago.
- lan_logs_sysmon.png (47.3 KB ) - added by 2 weeks ago.
Download all attachments as: .zip

