Changes between Version 7 and Version 8 of RelationalDesign
- Timestamp:
- 01/22/26 19:27:19 (2 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RelationalDesign
v7 v8 13 13 Овие ознаки овозможуваат појасно разбирање на структурата на базата на податоци и релациите помеѓу табелите. 14 14 15 --- 16 15 17 === Табели === 16 18 17 1. Tenants ('''__id PK__''', '''name''', '''owner_email''', '''created_at''') 19 1. '''Tenants''' 20 ('''__id PK__''', '''name''', '''owner_email''', '''created_at''') 18 21 19 2. Users ('''__id PK__''', '''email''' (UNIQUE), name, picture, '''created_at''') 22 2. '''Users''' 23 ('''__id PK__''', '''email''' (UNIQUE), name, picture, '''created_at''') 20 24 21 3. Memberships ('''__user_id PK__ FK*(Users.id)''', '''__tenant_id PK__ FK*(Tenants.id)''', '''role''', '''created_at''') 25 3. '''Memberships''' 26 ('''__user_id PK__ FK*(Users.id)''', '''__tenant_id PK__ FK*(Tenants.id)''', role, created_at) 22 27 *Забелешка:* Memberships има составен примарен клуч: (user_id, tenant_id). 23 28 24 4. Environments ('''__id PK__''', '''name''', '''created_at''', '''tenant_id FK*(Tenants.id)''', (UNIQUE: tenant_id + name)) 29 4. '''Environments''' 30 ('''__id PK__''', '''tenant_id FK*(Tenants.id)''', '''name''', '''created_at''', (UNIQUE: tenant_id + name)) 25 31 26 5. ENV_Tokens ('''__id PK__''', '''env_name FK*(Environments.name)''', '''token''' (UNIQUE), '''created_at''', expires_at, '''tenant_id FK*(Tenants.id)''') 32 5. '''ENV_Tokens''' 33 ('''__id PK__''', '''tenant_id FK*(Tenants.id)''', '''env_name''', '''token''' (UNIQUE), '''created_at''', expires_at) 27 34 28 6. Admin_sessions ('''__id PK__''', '''token''' (UNIQUE), '''created_at''') 35 6. '''Computers''' 36 ('''__id PK__''', '''tenant_id FK*(Tenants.id)''', '''env_name''', '''name''', user, ip, os, first_seen, last_seen, sysmon_available, (UNIQUE: tenant_id + name)) 29 37 30 7. Computers ('''__id PK__''', '''name''', user, ip, os, first_seen, last_seen, sysmon_available, '''env_name FK*(Environments.name)''', '''tenant_id FK*(Tenants.id)''', (UNIQUE: tenant_id + name)) 38 7. '''Computer_history''' 39 ('''__id PK__''', '''computer_id FK*(Computers.id)''', cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp) 31 40 32 8. Computer_history ('''__id PK__''', '''computer_id FK*(Computers.id)''', cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp) 41 8. '''Computer_processes_current''' 42 ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp) 33 43 34 9. Computer_processes ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp) 44 9. '''Computer_processes_history''' 45 ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp) 35 46 36 10. Sysmon_events ('''__id PK__''', '''computer_id FK*(Computers.id)''', event_id, event_type, message, timestamp, details) 47 10. '''Sysmon_events''' 48 ('''__id PK__''', '''computer_id FK*(Computers.id)''', event_id, event_type, message, timestamp, details) 37 49 38 11. Network_connections ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, local_address, remote_address, status, process_name, timestamp) 50 11. '''Network_connections''' 51 ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, local_address, remote_address, status, process_name, timestamp) 39 52 40 12. Security_alerts ('''__id PK__''', '''computer_id FK*(Computers.id)''', alert_type, severity, description, timestamp, resolved) 53 12. '''Security_alerts''' 54 ('''__id PK__''', '''computer_id FK*(Computers.id)''', alert_type, severity, description, timestamp, resolved) 41 55 42 === DDL скрипта за бришење на табелите и креирање на табелите === 56 13. '''Env_settings''' 57 ('''__tenant_id PK__ FK*(Tenants.id)''', '''__env_name PK__''', save_process_history, created_at, updated_at) 58 59 --- 60 61 === Забелешки за дизајнот === 62 63 * Табелата '''Computer_processes_current''' содржи само моментална snapshot состојба на процесите. 64 * Табелата '''Computer_processes_history''' се користи само ако е овозможено снимање на историја преку '''Env_settings'''. 65 * Табелата '''Env_settings''' овозможува конфигурација по environment без потреба од глобални флагови. 66 * Не се користи посебна табела за admin sessions – автентикацијата се реализира преку JWT cookie. 67 68 --- 69 70 === DDL скрипта за креирање на табелите === 43 71 [attachment:ddl_sql.sql ddl_sql.sql] 44 72 … … 46 74 [attachment:dml.sql dml.sql] 47 75 76 --- 77 48 78 === Релациски дијаграм === 49 79
