Distinguer scénario, dessin et couleurs sur chaque livre
Le rôle vit sur le LIEN livre-auteur, jamais sur l'auteur : le même auteur scénarise un album et dessine le suivant, et il ne doit pas exister en deux fiches pour autant — ce que l'index unique sur la clé de regroupement interdit de toute façon. Les rôles se retrouvent par clé d'auteur résolue et non par position : ResoudreAsync écarte les noms vides et fusionne les variantes, donc sa liste peut être plus courte que la saisie. Piège traité : le champ des noms reconstruit la liste à chaque frappe. Decouper reprend les rôles connus en rapprochant sur la forme normalisée, sans quoi corriger une faute de frappe les effacerait tous. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -731,7 +731,9 @@ Auteur
|
||||
LivreAuteur (n-n : un livre peut avoir plusieurs auteurs)
|
||||
├── LivreId ─┐ clé primaire composite
|
||||
├── AuteurId ─┘ FK Livre = cascade, FK Auteur = restrict
|
||||
└── Position (rang sur la couverture, à partir de 0)
|
||||
├── Position (rang sur la couverture, à partir de 0)
|
||||
└── Role : NonPrecise | Scenario | Dessin | Couleurs
|
||||
⚠ sur le LIEN, pas sur l'auteur : on scénarise un album et on dessine le suivant
|
||||
|
||||
StatutLecture (le statut est PERSONNEL)
|
||||
├── Id
|
||||
@@ -941,6 +943,47 @@ livre sorti depuis six mois qu'on avait oublié, pas celui prêté hier.
|
||||
(`ServiceLivresApi.EnUtc`). Sans cela le prêt se décalerait d'un jour pour la moitié du globe.
|
||||
Vérifié en exécution : saisie du 12/08 → `2026-08-11 22:00` en base (CEST).
|
||||
|
||||
## Rôles des auteurs — migration `RolesDesAuteurs` (2026-08-19)
|
||||
|
||||
Besoin venu de la bande dessinée : savoir **qui écrit et qui dessine**. `LivreAuteur.Role` porte
|
||||
`NonPrecise` (0), `Scenario`, `Dessin`, `Couleurs` — un troisième nom figurant souvent sur un
|
||||
album.
|
||||
|
||||
### ⚠️ Le rôle vit sur le LIEN, pas sur l'auteur
|
||||
|
||||
C'est la décision structurante, et elle se justifie par un cas banal : le même auteur scénarise
|
||||
un album et **dessine** le suivant. Un rôle posé sur `Auteur` obligerait à créer deux fiches pour
|
||||
une seule personne — exactement ce que l'index unique `CleRegroupement` interdit, et ce que tout
|
||||
le travail de rapprochement cherche à éviter.
|
||||
|
||||
Conséquence dans `ServiceCatalogue` : `ResoudreAsync` ne reçoit **que des noms**, et les rôles
|
||||
sont réappliqués ensuite. ⚠️ Ils se retrouvent **par clé d'auteur résolue**, jamais par position :
|
||||
`ResoudreAsync` écarte les noms vides et fusionne les variantes, donc sa liste peut être plus
|
||||
courte que la saisie — un rapprochement par index décalerait tous les rôles suivants. Un test
|
||||
couvre le cas « Maupassant, Guy de » rapproché de « Guy de Maupassant ».
|
||||
|
||||
### Deux règles d'interface, héritées telles quelles
|
||||
|
||||
- **Les rôles n'apparaissent qu'à partir de deux auteurs.** Un roman n'a qu'un signataire dont le
|
||||
rôle ne se pose pas ; la question « qui écrit, qui dessine ? » ne se pose qu'à plusieurs.
|
||||
- **Seul ce qui a été choisi s'affiche** : « Dobbs (scénario), Christophe Regnault (dessin) »,
|
||||
et rien du tout quand le rôle est `NonPrecise`. Même règle que le format et le type de document.
|
||||
|
||||
### ⚠️ Le piège : le champ des noms se relie à chaque frappe
|
||||
|
||||
`EnregistrementLivre.Auteur` (la vue « une seule ligne ») **reconstruit la liste entière** à
|
||||
chaque caractère tapé. Sans précaution, corriger une faute de frappe remettrait tous les rôles à
|
||||
« non précisé » sous les yeux de l'utilisateur.
|
||||
|
||||
`Decouper` reprend donc les rôles des auteurs déjà saisis, en rapprochant sur la forme
|
||||
**normalisée** du nom — ce qui les fait survivre à un accent ajouté après coup (vérifié en
|
||||
exécution : « Christophe » → « Christophé » garde son rôle). Un nom réellement différent, lui,
|
||||
repart à zéro : on ne devine pas qu'il s'agit de la même personne.
|
||||
|
||||
**Ce qui n'est délibérément pas fait** : ni traducteur, ni préfacier, ni photographe. La liste
|
||||
reste courte tant que le besoin n'est pas constaté — une valeur s'ajoute sans migration, la
|
||||
renommer une fois posée sur des centaines de liens, non.
|
||||
|
||||
## Type de document — migration `TypeDeDocument` (2026-08-19)
|
||||
|
||||
Besoin remonté : distinguer une BD d'un roman. Une BD était déjà catalogable telle quelle (elle
|
||||
|
||||
Reference in New Issue
Block a user