Перейти к содержанию

ERD — PostgreSQL

erDiagram
    users ||--o{ participants : has
    sessions ||--|{ participants : contains
    sessions ||--|{ game_instances : hosts
    game_instances ||--|{ game_actions : logs
    participants ||--o{ game_actions : performs

    users {
        uuid id PK
        string email UK
        string password_hash
        bigint telegram_id UK
        timestamp created_at
    }
    sessions {
        uuid id PK
        string invite_code UK
        string status
        uuid host_participant_id FK
        timestamp created_at
    }
    participants {
        uuid id PK
        uuid session_id FK
        uuid user_id FK
        string guest_id
        string role
        string display_name
        boolean presence_web
        boolean presence_telegram
    }
    game_instances {
        uuid id PK
        uuid session_id FK
        string plugin_id
        string status
        jsonb state
        uuid current_player_id FK
        uuid winner_id FK
        timestamp started_at
        timestamp finished_at
    }
    game_actions {
        uuid id PK
        uuid game_instance_id FK
        uuid action_id UK
        string action_type
        jsonb payload
        uuid player_id FK
        timestamp created_at
    }

Исходник: erd.mmd