Sarc Posté 29 Décembre 2007 Posté 29 Décembre 2007 Bonjour ! Je souhaite répertorier dans ma base de données les fruits et légumes de mes chers membres. Je sais qu'ils auront poires, pommes, bananes, raisins, fraises et framboises. J'ai une table TABLE FRUITSid, nom 1. poire 2. pomme 3. banane etc J'hésite entre : TABLE POSSESSIONmembre, fruit, quantité 1 - 1 - 5 1 - 3 - 2 Ou alors TABLE POSSESSIONmembre, 1, 2, 3 1 - 5 - 0 - 2 ou encore TABLE POSSESSIONmembre, possession 1 - 5,0,2 La première idée semble plus propre (les noms de colonnes sont bien déterminés), mais la deuxième est bieeeen plus facile à relire (avec une seule ligne, on a directement toutes les posessions de notre cher membre), et la troisième est un mélange des deux (plus facile à lire, mais pour extraire il faut faire un explode...). Votre avis sur la question ? Merci d'avance
Anonymus Posté 29 Décembre 2007 Posté 29 Décembre 2007 La première, sans hésiter. Pourquoi ? Parce que tu remplaces 'fruit' par 'bien' et tu rajoutes 'type'. Ca donne : TABLE POSSESSION membre, type, bien, quantité 1 - 1 - 1 - 5 1 - 1 - 3 -2 par exemple. Avec le 'type' = '1' lorsque c'est un fruit. Ainsi, tu peux gérer aussi bien des fruits que des légumes, des voitures, des crayons bic, etc..
Sarc Posté 29 Décembre 2007 Auteur Posté 29 Décembre 2007 Merci de ta réponse ! En fait, c'est ce que j'ai utilisé jusqu'à maintenant, mais ce type de structure est bien plus ch*** à gérer... En effet, si on veut lui ajouter un bien, il faut : 1. Vérifier que ce bien n'est pas dans la base de donnée 2. S'il n'y est pas, le créer 3. S'il y est déjà, le mettre à jour Et si un jour on arrive à 0 d'un bien, on voudra faire le ménage dans la base de donnée, et dans ce cas l'effacer. L'avantage des autres méthodes, c'est qu'on n'a qu'une seule ligne par membre, et donc une mise à jour beaucoup plus aisée, en une seule fois, sans aucune vérification (s'il achète 2 bananes, 3 pommes d'un coup, on va pas avoir besoin de faire deux vérifications, ni deux mises à jour... Avec une mise à jour, on a déjà le compte !) Avec la première méthode, il suffit d'un bug pour se retrouver avec un doublon impossible à gérer en plus (je le sais, j'en ai déjà eu... Mais pour trouver où la vérification n'était pas faite, c'était une autre paire de manche). Bref, même si tu me confortes dans ma première idée, je suis pas totalement convaincu du bien-fondé de la chose
pluriels Posté 30 Décembre 2007 Posté 30 Décembre 2007 (modifié) La première méthode est la plus conventionnelle mais surtout la plus efficace. Pour éviter les doublons : tu peux créer un index sans doublons sur les colonnes membre et fruit TABLE POSSESSION membre, fruit, quantité 1 - 1 - 5 1 - 3 - 2 De cette manière si tu tentes l'insertion : 1 -3 - 4, la BDD t'empêchera de le faire. // insertion du bienmysql_query("INSERT INTO POSSESSION ...");// si l'insertion n'a pas été effectuée et que l'erreur correspond à un problème d'unicité de la clé (j'ai mis le code 1083 au hasard)if(mysql_errno($connexion)==1083){ mysql_query("UPDATE POSSESSION ...");} Modifié 30 Décembre 2007 par pluriels
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant