Skip to main content
DAYZERO Portál pracuje s ~28 tabulkami v MySQL databázi. Schéma najdete v schema.sql (35 kB) v repozitáři.

Hlavní oblasti

Users ──┬── Characters ──┬── CharacterJournals
        │                 └── (statistics from relay)

        ├── UserFactions ── Factions ──┬── FactionJournals
        │                                └── FactionGalleryItems

        ├── UserGalleryItems
        ├── UserAnthems
        ├── UserAchievements ── Achievements
        ├── UserGroups ── Groups
        ├── Beans
        ├── UserFollows  (self-relation)
        ├── UserReputations  (self-relation)
        ├── UserWhitelists
        ├── UserDevices
        ├── UserSessions   (z relay logů)
        ├── UserActivities (audit)
        └── UserConsents (GDPR)

System ─┬── SysTokens (activation, recovery, 2FA, …)
        ├── SysRateLimits
        ├── Notifications
        ├── ConfigWebhooks
        ├── CalendarEvents
        ├── UserUploads (avatar, banner, gallery, anthem, …)
        ├── Moralities
        └── Applications (general — whitelist, future types)

Identifikátory

  • UUID v4 všude tam, kde to dává smysl (users, characters, factions, journal entries, gallery items, …).
  • AUTO_INCREMENT INT u některých legacy / číselníkových tabulek (groups, beans).
  • Steam64 je 17místný řetězec, ne číslo (kvůli velikosti).

Stálost dat

SkupinaPolitika
Profil, postavy, deníkyPermanentní (do smazání účtu / postavy).
DevicesSmazání po 30 dnech neaktivity.
Rate limitsCleanup při dalším requestu (lazy).
NotificationsPermanentní (lze označit jako neaktivní).
Audit log30 dní (smaže LogRetentionJob).
Aplikační logy30 dní.

Cizí klíče

Schéma většinou používá ON DELETE CASCADE pro vázané záznamy (např. mazání postavy → její deníky). Některé výjimky:
  • user_uploads — zůstávají i po smazání záznamu, aby šly recyklovat.
  • notifications — zůstávají, ukazují historii.

Indexy

  • users.username, users.steamid, users.dz_be_hash — unikátní.
  • characters.owner, characters.status — pro výpisy.
  • user_activities (user_id, created_at) — pro audit query.
  • user_sessions (steamid, timestamp) — pro relay matching.

Související

Entity

Detailní popis sloupců hlavních tabulek.

Enumy a typy

Vyjmenované hodnoty.