cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 30 déc. 2007 à 12:35
C'est plus une question c'est un chantier !
il y aurait tellement de choses à dire qu'on ne sait plus par quel bout commencer..
je te conseille vivement de t'inspirer de quelques bases qui ont été déjà présentées sur ce forum et ensuite si nécessaire tu reviendras pour poser une seule question à la fois.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 30 déc. 2007 à 15:13
tu as mal fait ta base :
Categories :
ID (numerique) 0..x
Description (texte) Informatique, Roman, Polar ...
CodeLetter (char) I, R, P ...
Auteurs :
ID (numerique) 0..x
Nom/Prenom (texte)
Editions :
ID (numerique) 0..x
Description (texte)
Livre :
ID (numerique) 0..x
IDCat (numerique) link -> Categorie -> ID
Titre
IDAut (numerique) link -> Auteurs -> ID
IDEdit (numerique) link -> Editions -> ID
NSequentiel
Quantité
Comme cela :
Quand on modifie cotegorie/edition/auteur les changements sont independants et de plus on gange de la place puisqu'on ne repete que les ID de ces derniers.
quand on cherche les livres d'une categorie :
SELECT * FROM Livres WHERE IDCat = [ID Categorie selectionné] ...
quand on cherche tout les livres d'un auteur :
SELECT * FROM Livres WHERE IDAut = [ID Auteur selectionné] ...
quand on cherche tout les livres d'une edition particuliere :
SELECT * FROM Livres WHERE IDEdit = [ID Edition selectionné] ...
cela simplifie grandement les requettes (utilisation de chiffre plutot que de texte).
Pour faire le code, tu n'as plus qu'a prendre :
SELECT CodeLetter FROM Categories WHERE ID = [ID categorie selectionné] ...
SELECT NSequentiel FROM Livres WHERE ID = [ID livre selectionné] ...
et voilou.
De tête ça doit donner approximativement un truc comme ça.
L'avantage majeur c'est que chaque chose est independantes des autres et donc les modifications/ajout/suppression ne sont plus contraignantes.