Skip to content

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.

SourceVersTable / notion de liaison
enterprisesusersenterprise_id
enterprisesfoldersenterprise_id
documentsusersvia users_documents (documents deposés)
documentsfoldersfolder_id nullable (dossier d'appartenance)
foldersuserscreated_by (administrateur créateur)

Tables coeur metier

  • users: profil utilisateur metier (lie a user_id externe auth), provisionne a la connexion, avec role_type
  • enterprises: entreprise du client — possède un uuid unique (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_id nullable : 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 (voir back/src/prisma/prisma.service.ts).
  • Pour le dépôt de fichier, le back crée un enregistrement documents avec la liaison utilisateur via users_documents.
  • Le deposant d'un fichier est resolu via users_documents.user_id -> users.id pour les vues d'administration.
  • Le champ documents.size stocke la taille du fichier en octets. Il est utile pour la liste des fichiers déposés côté client.
  • Le champ documents.folder_id est nullable. Ajouté via sql/tool_04_folder_id_on_documents.sql. Un document sans dossier reste accessible via users_documents.
  • folders ne porte plus de client_id : le rattachement metier est folders.enterprise_id, et created_by conserve uniquement l'utilisateur local qui a cree/provisionne le dossier.