Diagramme UML de la base de données - Référentiel UBSI 2026
Ce diagramme représente la structure de la base de données PostgreSQL de l'app Référentiel.
Cartographie des flux de données - Référentiel
1. Données reçues par Référentiel
| Source | Données reçues | Utilisation | Stockage | Justification / Finalité |
|---|---|---|---|---|
| Achat | Demandes de création/modification de fiches fournisseurs : nom légal, code fournisseur, SIRET, adresse, contacts, documents contractuels | Créer ou mettre à jour les fiches fournisseurs dans le référentiel | Oui (table fournisseurs) | Centralisation des informations contractuelles et légales des partenaires commerciaux |
| Demandes de création/modification de fiches produits : EAN, nom, description, photos, catégorie, marque, caractéristiques techniques, prix | Créer ou mettre à jour les fiches produits dans le catalogue | Oui (table produits) | Référentiel centralisé du catalogue produits Fnac/Darty | |
| Relations fournisseur-produit : prix fournisseur, délais de livraison, quantités minimales, références fournisseur | Enregistrer les conditions d'approvisionnement par couple fournisseur-produit | Oui (table fournisseur_produits) | Gestion des conditions commerciales et optimisation des achats | |
| Logistique | Demandes de création/modification d'entrepôts : nom, adresse, capacités de stockage/logistique, zones desservies, rôles | Créer ou mettre à jour les fiches entrepôts | Oui (table entrepots) | Cartographie du réseau logistique et optimisation des flux |
| Demandes de mise à jour statut entrepôt : opérationnel, maintenance, fermé, en construction | Mettre à jour le statut opérationnel des entrepôts | Oui (champ statut dans entrepots) | Suivi en temps réel de la disponibilité du réseau logistique | |
| Informations sur les stocks produits : quantités disponibles, seuils d'alerte, dates de réapprovisionnement | Mettre à jour les informations de disponibilité produits | Oui (champs quantiteMin, dateFinReapprovisionnement dans produits) | Pilotage des niveaux de stock et planification des commandes | |
| Gestion des magasins | Demandes de création/modification de magasins : nom, adresse, type, surface, services disponibles, horaires | Créer ou mettre à jour les fiches magasins | Oui (table magasins) | Référentiel centralisé du réseau de distribution Fnac/Darty |
| Demandes de mise à jour statut magasin : ouvert, fermé, rénovation, fermeture temporaire | Mettre à jour le statut des points de vente | Oui (champ statut dans magasins) | Visibilité en temps réel sur l'état du réseau de vente | |
| Retours terrain sur produits : problèmes qualité, retours clients, demandes d'informations | Enrichir les fiches produits et ajuster les statuts | Oui (champs statutProduit, description dans produits) | Amélioration continue de la qualité des données produits |
2. Données envoyées par Référentiel
| Destination | Données envoyées | Utilisation par le destinataire | Stockage côté Référentiel | Finalité |
|---|---|---|---|---|
| E-Commerce | Catalogue produits complet : EAN, nom, description, photos, catégories, prix de vente, caractéristiques, statut, disponibilité | Afficher les produits sur le site web et l'application mobile | Oui (table produits + cache) | Mise à disposition du catalogue en ligne avec informations à jour |
| Liste des fournisseurs et conditions : nom fournisseur, prix, délais de livraison par produit | Calculer les délais de livraison et optimiser les approvisionnements | Oui (tables fournisseurs + fournisseur_produits) | Promesses de livraison fiables et gestion des stocks web | |
| Gestion des magasins | Fiches produits : EAN, nom, description, prix de vente, catégorie, marque, caractéristiques, photos | Consulter les informations produits en caisse et en rayon | Oui (table produits + synchronisation cache) | Information produit unifiée pour le personnel de vente |
| Liste des magasins : nom, adresse, horaires, services disponibles, type, statut | Afficher les points de vente disponibles pour click & collect et localisation | Oui (table magasins) | Visibilité du réseau de magasins pour l'omnicanal | |
| Logistique | Fiches produits avec contraintes logistiques : poids, dimensions, packaging, quantités minimales, fournisseurs | Planifier les acheminements, optimiser les palettes et gérer les espaces de stockage | Oui (table produits + relations fournisseurs) | Optimisation des flux physiques et de l'espace entrepôt |
| Liste des entrepôts : nom, adresse, capacités, zones desservies, rôles logistiques, statut | Router les commandes et planifier les distributions | Oui (table entrepots) | Pilotage du réseau logistique et affectation des stocks | |
| Informations fournisseurs : coordonnées, délais de livraison, conditions de commande | Gérer les relations avec les fournisseurs et passer les commandes | Oui (tables fournisseurs + fournisseur_produits) | Coordination des approvisionnements avec les partenaires | |
| SAV | Documentation produit : manuels, guides de réparation, fiches techniques, durées de garantie | Assurer le support client et les réparations sous garantie | Oui (champs documentationUrl, dureeGarantie dans produits) | Support technique efficace et gestion des garanties |
| Informations fournisseurs : contacts SAV constructeur, pièces de rechange disponibles | Coordonner avec les constructeurs pour les réparations complexes | Oui (table fournisseurs avec interlocuteurs) | Escalade vers les constructeurs si nécessaire | |
| Promotion | Liste des produits avec catégories : EAN, nom, catégorie, prix de vente, marque, photos | Créer des campagnes promotionnelles ciblées par catégorie ou marque | Oui (table produits + logs de consultation) | Création de campagnes marketing basées sur le catalogue |
| Informations magasins : liste des points de vente, types, services disponibles | Créer des promotions localisées (par magasin ou type de magasin) | Oui (table magasins) | Promotions géolocalisées et adaptées au type de point de vente | |
| Achat | Demandes de création de fournisseurs : informations validation nécessaires, documents manquants | Notifier les équipes Achat des demandes en attente de validation | Non (notification temps réel) | Workflow de validation des nouveaux fournisseurs |
| Alertes sur fournisseurs : statuts contractuels expirés, documents à renouveler, fournisseurs suspendus | Gérer proactivement les renouvellements et les problèmes contractuels | Oui (logs d'alerte + table fournisseurs) | Sécurisation juridique et continuité des approvisionnements |
Diagramme de classes (Mermaid)
Enums métiers
Statuts Produits
actif: Produit disponible à la venteinactif: Temporairement indisponible (rupture, saisonnier)discontinue: Arrêt définitif de commercialisationen_developpement: Produit en cours de développement/testobsolete: Produit dépassé, remplacé par une nouvelle version
Statuts Fournisseurs
actif: Fournisseur opérationnel et autoriséinactif: Temporairement désactivésuspendu: Suspendu pour problème qualité/livraisonbloque: Bloqué pour problème juridique/financieren_validation: Nouveau fournisseur en cours de validation
Statuts Contractuels
valide: Contrat en cours et valideexpire: Contrat expiré, renouvellement nécessaireen_negociation: Négociation/renouvellement en coursresilie: Contrat résilié définitivementsuspendu: Contrat suspendu temporairement
Statuts Entrepôts
operationnel: Entrepôt en fonctionnement normalmaintenance: Maintenance programmée, capacité réduiteferme: Fermé définitivement ou temporairementen_construction: En cours de construction/aménagement
Statuts Magasins
ouvert: Magasin ouvert au publicferme: Fermé définitivementrenovation: Travaux de rénovation en coursfermeture_temporaire: Fermé temporairement (congés, incident)
Types de Magasins
megastore: Grands magasins type Fnac des Ternes, Darty Républiquemagasin_centre_ville: Magasins en centre-villemagasin_centre_commercial: Dans les centres commerciauxmagasin_peripherie: En périphérie des villesconcept_store: Magasins spécialisés (ex: Fnac Gaming, Darty Cuisine)corner: Corners dans d'autres enseignesdrive: Retrait commandes uniquementshowroom: Exposition/démonstration principalement
Catégories de Produits
informatique: Ordinateurs, composants, accessoirestelephonie: Smartphones, tablettes, accessoires mobilesimage_son: TV, audio, photo, vidéoelectromenager: Gros et petit électroménagergaming: Consoles, jeux vidéo, accessoires gamingmaison_connectee: Domotique, objets connectésaccessoires: Câbles, housses, supports, etc.services: Extensions de garantie, services, formationsmultimedia: Stockage, lecteurs, supports physiques
Services Disponibles
click_collect: Retrait en magasinlivraison_domicile: Livraison à domicileinstallation: Service d'installationreparation: Service après-vente/réparationreprise: Reprise ancien matérielfinancement: Solutions de financementextension_garantie: Extensions de garantieformation: Formation/prise en mainlocation: Location de matérielmaintenance: Contrats de maintenance
Statuts Relations Fournisseur
actif: Relation commerciale activeinactif: Relation suspendue temporairementsuspendu: Suspendu pour problème qualité/livraisonprefere: Fournisseur préférentiel pour ce produitsecours: Fournisseur de backup/secours
Colonnes communes (baseColumns)
Toutes les tables héritent des colonnes de base suivantes :
id: bigint, clé primaire auto-généréecreatedAt: timestamp, date de création (défaut: now())updatedAt: timestamp, date de mise à jour (défaut: now())
Notes techniques
Relations principales
- FournisseurProduits : Table de jointure many-to-many entre Fournisseurs et Produits
- Contient les informations spécifiques à chaque relation (prix, délais, quantités)
- Permet de gérer plusieurs fournisseurs par produit
- Gère le statut de chaque relation commerciale
Champs dépréciés
Produits.deprecatedSKU: Remplacé pareanProduits.deprecatedPrixDAchatFournisseurCents: UtiliserFournisseurProduits.prixFournisseurCentsFournisseurs.deprecatedProduitsFournisSkus: Utiliser la tableFournisseurProduits
Identifiants uniques
Produits.ean: Code-barres international, identifiant standardFournisseurs.codeFournisseur: Code interne unique par fournisseurUsers.email: Email unique par utilisateur
Visualisation
Pour visualiser ce diagramme :
- Utilisez un outil compatible Mermaid (GitHub, GitLab, VS Code avec extension)
- Copiez le code Mermaid dans https://mermaid.live/
- Ou intégrez-le dans votre documentation Docusaurus (déjà configuré)