Bonjour CinePhil et Fabien,
Point 1 :
De mon point de vue, dans ton cas, la séparation de ces dates en 3 colonnes se justifie amplement (argument commun entre toi et SQLPro).
La question est donc : est-il admissible que ces trois colonnes puissent être de valeur NULL ?
==> à mon sens, oui. La cohérence de la saisie peut être assurée par une fonction traitant les différents cas de saisie/non-saisie.
Sinon, effectivement, tu pourrais créer les entités suivantes :
Jour (jou_id, ...) ==> de 1 à 31 ;
Mois (moi_id, ...) ==> de 1 à 12 ;
Année (ann_id, ...) ==> de 1900 à 10000.
avec les relations (intéressantes) :
Jour ---(0,12)---[compose le mois]---(28,31)--- Mois ;
Mois ---(1,n)---[compose l'année]---(12,12)--- Année.
==> de toutes façons, en final, la cohérence (31/02/xxxx) devra être testée (par un trigger, par exemple).
Point 2 :
Le seul attribut que l'on connaît, à coup sûr, est le nom public (sinon, il ne serait pas public) : Miou-Miou, Eddy Mitchell, etc...
La relation que tu présentes
Envoyé par
CinePhil
personne -0,1----avoir----(1,1)- pseudonyme
se discute. Celle-ci :
personne -0,n----avoir----(1,n)- pseudonyme
me paraît plus juste.
En effet :
- dans la carrière d'un même artiste, l'emploi de plusieurs pseudonymes est possible (pas d'exemple à te donner, mais peut se justifier par un changement "d'orientation") ;
- un même pseudonyme peut, également, être ou avoir été celui de plusieurs personnes (pas d'exemple à te donner, mais les nouvelles générations peuvent ne pas avoir la liste, à jour, de tous les pseudonymes à ne pas utiliser).
Pour le pseudonyme, une association serait donc la bienvenue, de par la conception.
En revanche, pour le nom réel, je ne pense pas que ce soit nécessaire. Faire une table qui contiendrait "MOINE Jean-Claude" uniquement pour prévoir le fait qu'il peut y avoir d'autres artistes dont le nom réel serait "MOINE Jean-Claude", ne me semble pas pertinent. D'autre par, la valeur NULL du nom réel d'un artiste est un renseignement intéressant, en soi : l'externaliser pour ne pas avoir de valeur NULL dans la table, mais retrouver cette valeur NULL dans les différentes requêtes ne me semble pas valoir le coup.
Partager