Changes between Version 7 and Version 8 of RelationalDesign


Ignore:
Timestamp:
01/22/26 19:27:19 (2 weeks ago)
Author:
231118
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalDesign

    v7 v8  
    1313Овие ознаки овозможуваат појасно разбирање на структурата на базата на податоци и релациите помеѓу табелите.
    1414
     15---
     16
    1517=== Табели ===
    1618
    17 1. Tenants ('''__id PK__''', '''name''', '''owner_email''', '''created_at''')
     191. '''Tenants''' 
     20   ('''__id PK__''', '''name''', '''owner_email''', '''created_at''')
    1821
    19 2. Users ('''__id PK__''', '''email''' (UNIQUE), name, picture, '''created_at''')
     222. '''Users''' 
     23   ('''__id PK__''', '''email''' (UNIQUE), name, picture, '''created_at''')
    2024
    21 3. Memberships ('''__user_id PK__ FK*(Users.id)''', '''__tenant_id PK__ FK*(Tenants.id)''', '''role''', '''created_at''')
     253. '''Memberships''' 
     26   ('''__user_id PK__ FK*(Users.id)''', '''__tenant_id PK__ FK*(Tenants.id)''', role, created_at) 
    2227   *Забелешка:* Memberships има составен примарен клуч: (user_id, tenant_id).
    2328
    24 4. Environments ('''__id PK__''', '''name''', '''created_at''', '''tenant_id FK*(Tenants.id)''', (UNIQUE: tenant_id + name))
     294. '''Environments''' 
     30   ('''__id PK__''', '''tenant_id FK*(Tenants.id)''', '''name''', '''created_at''', (UNIQUE: tenant_id + name))
    2531
    26 5. ENV_Tokens ('''__id PK__''', '''env_name FK*(Environments.name)''', '''token''' (UNIQUE), '''created_at''', expires_at, '''tenant_id FK*(Tenants.id)''')
     325. '''ENV_Tokens''' 
     33   ('''__id PK__''', '''tenant_id FK*(Tenants.id)''', '''env_name''', '''token''' (UNIQUE), '''created_at''', expires_at)
    2734
    28 6. Admin_sessions ('''__id PK__''', '''token''' (UNIQUE), '''created_at''')
     356. '''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))
    2937
    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))
     387. '''Computer_history''' 
     39   ('''__id PK__''', '''computer_id FK*(Computers.id)''', cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
    3140
    32 8. Computer_history ('''__id PK__''', '''computer_id FK*(Computers.id)''', cpu_usage, ram_usage, disk_usage, network_sent_mb, network_recv_mb, timestamp)
     418. '''Computer_processes_current''' 
     42   ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
    3343
    34 9. Computer_processes ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
     449. '''Computer_processes_history''' 
     45   ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, name, cpu_percent, memory_mb, username, cmdline, timestamp)
    3546
    36 10. Sysmon_events ('''__id PK__''', '''computer_id FK*(Computers.id)''', event_id, event_type, message, timestamp, details)
     4710. '''Sysmon_events''' 
     48    ('''__id PK__''', '''computer_id FK*(Computers.id)''', event_id, event_type, message, timestamp, details)
    3749
    38 11. Network_connections ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, local_address, remote_address, status, process_name, timestamp)
     5011. '''Network_connections''' 
     51    ('''__id PK__''', '''computer_id FK*(Computers.id)''', pid, local_address, remote_address, status, process_name, timestamp)
    3952
    40 12. Security_alerts ('''__id PK__''', '''computer_id FK*(Computers.id)''', alert_type, severity, description, timestamp, resolved)
     5312. '''Security_alerts''' 
     54    ('''__id PK__''', '''computer_id FK*(Computers.id)''', alert_type, severity, description, timestamp, resolved)
    4155
    42 === DDL скрипта за бришење на табелите и креирање на табелите ===
     5613. '''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 скрипта за креирање на табелите ===
    4371[attachment:ddl_sql.sql ddl_sql.sql]
    4472
     
    4674[attachment:dml.sql dml.sql]
    4775
     76---
     77
    4878=== Релациски дијаграм ===
    4979