docs: migrer schémas BDD de Mermaid vers DBML
Remplace les diagrammes Mermaid par DBML (via kroki-dbml) pour une meilleure expressivité des schémas de base de données : - Ajout support notes, contraintes et indexes détaillés - Migration de tous les schémas d'entités partagées - Ajout fichier exemple dbml-example.md - Configuration plugin mkdocs-kroki pour rendu DBML
This commit is contained in:
@@ -4,22 +4,43 @@
|
||||
|
||||
## Diagramme
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o{ DATA_EXPORTS : "demande"
|
||||
```kroki-dbml
|
||||
Table users {
|
||||
id uuid [primary key]
|
||||
}
|
||||
|
||||
DATA_EXPORTS {
|
||||
uuid id PK
|
||||
uuid user_id FK
|
||||
string status
|
||||
string export_url
|
||||
bigint size_bytes
|
||||
string format
|
||||
timestamp requested_at
|
||||
timestamp generated_at
|
||||
timestamp expires_at
|
||||
timestamp downloaded_at
|
||||
}
|
||||
Table data_exports {
|
||||
id uuid [primary key]
|
||||
user_id uuid [not null, ref: > users.id]
|
||||
status export_status_enum [not null, default: 'pending']
|
||||
export_url varchar(512) [note: 'S3/CDN signed URL (NULL until generated)']
|
||||
size_bytes bigint [note: 'File size in bytes (NULL until generated)']
|
||||
format export_format_enum [not null, default: 'json']
|
||||
requested_at timestamp [not null, default: `now()`]
|
||||
generated_at timestamp [note: 'When export file was created (NULL if pending/generating)']
|
||||
expires_at timestamp [note: 'Auto-calculated: generated_at + 7 days']
|
||||
downloaded_at timestamp [note: 'First download timestamp (NULL if not yet downloaded)']
|
||||
|
||||
indexes {
|
||||
(user_id, requested_at) [note: 'User export history']
|
||||
(status, requested_at) [note: 'Background worker queue (WHERE status = pending)']
|
||||
(expires_at) [note: 'Daily cleanup job (DELETE WHERE expires_at < NOW())']
|
||||
}
|
||||
}
|
||||
|
||||
Enum export_status_enum {
|
||||
pending [note: 'Demande en file d attente']
|
||||
generating [note: 'Génération en cours (worker background)']
|
||||
ready [note: 'Export disponible au téléchargement']
|
||||
downloaded [note: 'Export téléchargé par l utilisateur']
|
||||
expired [note: 'Export expiré (supprimé automatiquement)']
|
||||
}
|
||||
|
||||
Enum export_format_enum {
|
||||
json [note: 'Machine-readable (données brutes)']
|
||||
html [note: 'Human-readable (page web stylée)']
|
||||
zip [note: 'Archive complète (JSON + HTML + audio files)']
|
||||
}
|
||||
```
|
||||
|
||||
## Légende
|
||||
|
||||
Reference in New Issue
Block a user