Bob84 | olivthill a écrit :
J'avais supposé que pour chaque chanson, il y avait un titre qui pouvait l'identifier de manière unique. Mais il est vrai que dans la réalité, certaines chansons peuvent avoir des paroles différentes tout en ayant les mêmes intitulés, par exemple les paroles anglaises de Be Bop A Lula (chanté par Gene Vincent) sont différentes des paroles françaises de Be Bop A Lula (chanté par Eddy Mitchell). Pour les distinguer, j'indiquerais "VF" quelque part pour la version française. Pour une même langue, il peut aussi y avoir des variantes, par exemple lorsqu'une chanson est enregistrée lors d'un concert, et que l'artiste se permet quelques changements. Alors, j'ajouterais "V1", "V2", etc., afin de pouvoir retrouver de quelle chanson il s'agit à partir du titre.
Si on a que "Be bop a lula", on ne peut pas savoir si c'est une chanson anglaise ou japonaise, et on n'est pas très avancé.
|
Tout d'abord, bonjour et merci pour votre réponse.
Je suis parti dans une autre optique. Les différentes versions sont distinguées par des commentaires renseignés dans la table de relation des enregistrements.
Ainsi, si je tape "Be bop a lula", pour reprendre votre exemple, j'aurai toutes les versions d'un seul coup d'oeil, je saurai dans quel(s) enregistrement(s) les trouver et les commentaires me permettront d'affiner mon choix.
olivthill a écrit :
Utiliser plusieurs fois une table n'est pas un problème. Ce qu'il faut, c'est s'efforcer de respecter les "règles de normalisation" édictées par Monsieur E. F. Codd. Il y a trois règles principales. Les voici en résumé :
1. Chaque donnée doit correspondre à une notion atomique. Par exemple, il ne faut pas mettre tantôt une date, et tantôt un texte dans un même champ. Il ne faut pas mettre une donnée dont on prendra les 3 premières caractères pour faire une chose, et les 4 caractères suivants pour faire autre chose. Il faut donc déterminer quels sont les "atomes" de l'application. Il faut aussi éviter un degré de finesse qui ne servirait à rien pour l'application. Descartes disait qu'il n'aimait pas la définition de "l'homme" selon Aristote qui disait que "l'homme est un animal pensant", car alors cela lui faisait deux notions à définir "un animal" et "la pensée", alors qu'au début il n'y en avait qu'une seule, "l'homme", qui est en soi-même une notion claire et évidente.
2. Les autres champs que la clé doivent être indépendants de la clé ou d'une de ses parties.
3. Les autres champs que la clé doivent être indépendants les uns des autres, parce que sinon, l'un d'eux serait une clé pour les autres.
|
Ensuite, je dis : respect
Trouver pèle mèle EF Codd, Gene Vincent, Eddy Mitchell puis Descartes et Aristote, bravo !
olivthill a écrit :
Ensuite, dans la pratique, les bases de données sont rarement figées. Elles évoluent sans cesse. On leur ajoute et on leur enlève des colonnes tous les quinze jours ou presque, et c'est normal. Commencez avec un modèle, et s'il faut le changer plus tard, faîtes le sans scrupule. L'informatique est un travail qui avance souvent par essai et erreur, par un esprit pragmatique, plutôt que par une planification d'un esprit dogmatique.
|
Enfin, je n'avais pas vu les choses sous cet angle.
Je pensais plutôt qu'une base de donnée devait être la mieux conçue possible dès le départ pour faire le moins de modifications par la suite.
Je vais voir les choses d'un autre oeil, à présent... |