U1 · Modéliser les objets métier et leurs relations · Lecture · 22 min
Tes objets existent depuis la fiche 3.3 — Client, Demande, Devis, Chantier. Cette fiche les durcit pour qu'ils survivent au passage dans un vrai outil de base de données au module 2.
Pour chaque relation, deux questions : combien au minimum, combien au maximum, dans chaque sens.
Le « zéro » est la partie qu'on oublie, et c'est celle qui casse les rapports. Si ton modèle suppose qu'une demande a toujours un devis, ton taux de transformation sera faux — puisque les demandes sans devis, précisément celles qu'on veut compter, n'existeront pas dans le calcul.
Quand tu constates qu'un A peut avoir plusieurs B et qu'un B peut avoir plusieurs A, il manque presque toujours un objet entre les deux.
Chez Vermont : un chantier peut concerner plusieurs devis — la cuisine et la verrière commandées ensemble — et un devis peut se répartir sur plusieurs chantiers si la pose est étalée. La relation directe devient ingérable. L'objet manquant est le Lot : une portion de chantier, rattachée à un devis, planifiée sur une période. Il apparaît dès qu'on pose la question, et il n'apparaît jamais si on ne la pose pas.
Chaque objet a besoin d'une référence stable, courte et lisible par un humain : DEV-2026-047, CHA-2026-012.
Ce n'est pas de la coquetterie. Karim au téléphone avec un client doit pouvoir dire « votre devis DEV-2026-047 » ; Sophie doit pouvoir le retrouver en trois secondes ; et l'identifiant technique interne à l'outil ne sert à aucun des deux — il est long, illisible, et il change si l'on migre d'outil un jour.
Le montant total d'un chantier se calcule depuis ses devis. Le nombre de demandes d'un client se compte. Stocker ces valeurs, c'est se garantir qu'un jour elles ne correspondront plus — parce qu'on aura modifié un devis sans repasser sur le total.
C'est le principe des agrégations de la fiche 1.6, énoncé comme règle d'architecture.
Un tableau, un objet par section, une ligne par champ : nom, type, obligatoire, valeurs autorisées, qui le remplit, exemple.
Sa vraie fonction n'est pas la documentation : c'est de rendre ton cadrage exécutable par quelqu'un d'autre. Un prestataire qui reçoit ce document construit la base sans te poser de questions. Sans lui, il interprète — et il interprétera mal la colonne « qui le remplit », qui est celle que personne n'écrit jamais.