#51 Le 18/12/2007, à 18:25
- compte supprimé
Re : [Résolu] - clé primaire obligatoire [SQL]
"Suis" de "suivre" ou d'"être" ?
Pour suivre c'est assez facile :
1 table "fac" avec un identifiant id (primaire, auto_increment), une date (dfact), une réf client (cli_id), une réf artiste (art_id), et un champ rem avec des commentaires (et d'autres choses encore).
2 table "client" avec un identifiant id (primaire, auto_increment), celui qui est couplé avec cli_id de la table fac. La table client contient aussi une référence carnet_id au carnet d'adresses (et d'autres choses encore).
3 table "carnet" avec un identifiant id (primaire, auto_increment), celui qui est couplé avec carnet_id de "cli" ou d'"art". C'est un carnet d'adresse, utilisable ailleurs aussi...
La sélection d'une facture entraà®ne celle d'un client, via la jointure fac LEFT JOIN cli ON fac.cli_id = cli.id, puis celle d'un nom et d'une adresse, via la jointure LEFT JOIN carnet AS carnet1 ON cli.carnet_id = carnet1.id
4 table "artiste" (c'est de l'organisation de petits concerts)
Idem que "client", sauf qu'on utilise cette fois un alias de la table "carnet", qui est en fait utilisée 2 fois dans la même requête, avec donc des alias différents, carnet1 et carnet2
A part ça, il y a encore les codes postaux et villes qui sont stockées à part dans la table "cps" (ça évite de les stocker 36000 fois, alors qu'il n'y en a qu'une dizaine qui reviennent sans arrêt). Encore une jointure pour y accéder...
Et, à la fin, un critère de sélection, ici le mois et l'année...
Il y a d'ailleurs une petite erreur :
WHERE MONTH(dfact) = '12' AND YEAR(dfact) = '2007'
Cette requête me sort ce qu'il faut, mis en forme, en 2 ou 3 centièmes de seconde ! A comparer avec des requêtes en série avec php, puis mise en forme des résultats...
A+
Dernière modification par faustus (Le 18/12/2007, à 18:29)
#52 Le 19/12/2007, à 11:53
- nowan
Re : [Résolu] - clé primaire obligatoire [SQL]
C'est clair que c'est le genre de cas ou la puissance du DBMS est très intéressant. Surtout lorsque le nombre de données à faire voyager entre la partie applicative et le DBMS devient important.
Par contre, un truc qui est vraiment frappant, c'est la manie qu'ont les français de nommer les tables, champs, ... en français.
Crap ;-)
Hors ligne
#53 Le 19/12/2007, à 12:28
- compte supprimé
Re : [Résolu] - clé primaire obligatoire [SQL]
Ce serait tellement mieux en novlangue...
120 mots et avec ça on dit tout ce qu'il est possible (autorisé) de dire !
Cela dit, je fais des efforts : j'ai déjà renoncé aux accents dans les noms de table ou de champs. Mais pour le reste, soyons francs, les Angles et les Saxons, je les emm...
Dernière modification par faustus (Le 19/12/2007, à 12:29)