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,20 +4,44 @@
|
||||
|
||||
## Diagramme
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o{ USER_PROFILE_HISTORY : "modifie"
|
||||
```kroki-dbml
|
||||
Table users {
|
||||
id uuid [primary key]
|
||||
email varchar(255)
|
||||
username varchar(50)
|
||||
bio text
|
||||
}
|
||||
|
||||
USER_PROFILE_HISTORY {
|
||||
uuid id PK
|
||||
uuid user_id FK
|
||||
string field_name "email/username/bio/etc."
|
||||
text old_value
|
||||
text new_value
|
||||
string change_reason "user_edit/admin_correction/gdpr_request"
|
||||
inet ip_address
|
||||
timestamp changed_at
|
||||
}
|
||||
Table user_profile_history {
|
||||
id uuid [primary key]
|
||||
user_id uuid [not null, ref: > users.id]
|
||||
field_name profile_field_enum [not null, note: 'Champ modifié (email, username, bio, etc.)']
|
||||
old_value text [note: 'Valeur avant modification (NULL si création)']
|
||||
new_value text [not null, note: 'Nouvelle valeur']
|
||||
change_reason change_reason_enum [not null]
|
||||
ip_address inet [not null, note: 'IP de l origine du changement']
|
||||
changed_at timestamp [not null, default: `now()`]
|
||||
|
||||
indexes {
|
||||
(user_id, changed_at) [note: 'Timeline modifications user (ordre chronologique)']
|
||||
(field_name, changed_at) [note: 'Track modifications par type de champ']
|
||||
(user_id, field_name) [note: 'Historique d un champ spécifique']
|
||||
}
|
||||
}
|
||||
|
||||
Enum profile_field_enum {
|
||||
email [note: 'Re-vérification requise après changement']
|
||||
username [note: 'Limite: 1 changement/30j']
|
||||
bio [note: 'Biographie utilisateur']
|
||||
avatar_url [note: 'URL de l avatar']
|
||||
date_of_birth [note: 'Date de naissance']
|
||||
}
|
||||
|
||||
Enum change_reason_enum {
|
||||
user_edit [note: 'Modification self-service utilisateur']
|
||||
admin_correction [note: 'Correction par admin (via backoffice)']
|
||||
gdpr_request [note: 'Suite demande RGPD formelle (droit de rectification)']
|
||||
}
|
||||
```
|
||||
|
||||
## Légende
|
||||
|
||||
Reference in New Issue
Block a user