Appearance
Modèle de données - prisma.tool
Ce document décrit le modele métier principal de la base Outils BDD (source: back/prisma/schema.prisma).
Vue d'ensemble des relations
Résumé type diagramme entité-association (sans Mermaid : VitePress n’affiche pas ce format par défaut). Pour un rendu graphique en local : coller le code Mermaid historique dans mermaid.live.
| Source | Vers | Table / notion de liaison |
|---|---|---|
enterprises | users | enterprise_id |
enterprises | folders | enterprise_id |
documents | users | via users_documents (documents deposés) |
documents | folders | folder_id nullable (dossier d'appartenance) |
folders | users | created_by (administrateur créateur) |
Tables coeur metier
users: profil utilisateur metier (lie auser_idexterne auth), provisionne a la connexion, avecrole_typeenterprises: entreprise du client — possède unuuidunique (utilisé comme préfixe de chemin S3)documents: métadonnées de fichiers (bucket,path,name,size,uuid), utilisé pour dépôt de fichiers.folder_idnullable : indique le dossier d'appartenance si déposé via un dossier.folders: espace de fichiers nommé, rattaché à une entreprise. Soft delete (deleted_at).
Tables de liaison
users_documents: utilisateurs <-> documents
Notes
- Ce résumé est volontairement simplifié : relations fonctionnelles, pas toutes les colonnes.
- Pour le detail complet des champs/contraintes, se referer au schema Prisma:
back/prisma/schema.prisma. - Cote back, ce modele est interroge via
prisma.tool(voirback/src/prisma/prisma.service.ts). - Pour le dépôt de fichier, le back crée un enregistrement
documentsavec la liaison utilisateur viausers_documents. - Le deposant d'un fichier est resolu via
users_documents.user_id -> users.idpour les vues d'administration. - Le champ
documents.sizestocke la taille du fichier en octets. Il est utile pour la liste des fichiers déposés côté client. - Le champ
documents.folder_idest nullable. Ajouté viasql/tool_04_folder_id_on_documents.sql. Un document sans dossier reste accessible viausers_documents. foldersne porte plus declient_id: le rattachement metier estfolders.enterprise_id, etcreated_byconserve uniquement l'utilisateur local qui a cree/provisionne le dossier.
