JeuWeb - Crée ton jeu par navigateur
questions autour d'SQL - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : questions autour d'SQL (/showthread.php?tid=4585)

Pages : 1 2


questions autour d'SQL - Argorate - 12-02-2010

Bonjour,

J'ai deux petites questions totalement indépendantes:

-premièrement, es ce que quelqu'un sait la différence entre:
"DELETE FROM x" & "TRUNCATE TABLE x"?

Y a t-il un avantage a l'un ou a l'autre? Si oui, le(s) quel(s)?

-deuxième question:

Selon-vous, vaut-il mieux faire des fonctions CRUD (CREATE – READ – UPDATE – DELETE) générique?
exemple: 'update_table($table, $update, $where);'

OU bien faire des CRUD pour chaque table?
exmple 'update_joueur($joueur);'

Voilà j'étais entrain de penser à ça, donc j'aurais aimé un avis extérieur,
Merci.


RE: questions autour d'SQL - Sephi-Chan - 12-02-2010

(12-02-2010, 03:58 PM)Argorate a écrit : -premièrement, es ce que quelqu'un sait la différence entre:
"DELETE FROM x" & "TRUNCATE TABLE x"?

TRUNCATE va réinitialiser le compteur auto-incrémenté.

(12-02-2010, 03:58 PM)Argorate a écrit : Selon-vous, vaut-il mieux faire des fonctions CRUD (CREATE – READ – UPDATE – DELETE) générique?
exemple: 'update_table($table, $update, $where);'

OU bien faire des CRUD pour chaque table?
exmple 'update_joueur($joueur);'

Ma réponse ne va te plaire mais... L'idéal est bien sûr l'objet. Avec une classe Model puis des classes filles Player, Building, etc. pour chaque modèle. L'héritage te permet de factoriser le code.
C'est tout de même bien mieux de manipuler des objets puis d'appeler leur méthode save. Un ORM, quoi. Smile


Sephi-Chan


RE: questions autour d'SQL - pascal - 12-02-2010

(12-02-2010, 03:58 PM)Argorate a écrit : -deuxième question:

Selon-vous, vaut-il mieux faire des fonctions CRUD (CREATE – READ – UPDATE – DELETE) générique?
exemple: 'update_table($table, $update, $where);'

OU bien faire des CRUD pour chaque table?
exmple 'update_joueur($joueur);'

Utiliser un framework avec un générateur d'admin, genre symfony. ça prendra quelques minutes pour ajouter le crud au back office.

A+

Pascal


RE: questions autour d'SQL - Argorate - 12-02-2010

Si vous aviez juste le choix entre ses deux options? Wink
Ce qui m'interesse c'est de savoir jusqu'a qu'elle point il faut etre "générique" d'après vous.

Sinon, merci pour la premiere question!


RE: questions autour d'SQL - pascal - 12-02-2010

Tu n'as pas d'obligation à faire générique; mais tu peux être pragmatique et te faciliter la vie avec des outils adaptés ;-)

A+

Pascal


RE: questions autour d'SQL - Argorate - 12-02-2010

Je sais qu'on est pas obligé de faire tout de manière générique, mais le problème c'est que me coltiner 20 fonctions qui font quasiment la meme chose, ça me chagrine un peu Sad


RE: questions autour d'SQL - keke - 12-02-2010

Je rajouterais que TRUNCATE est immédiat, alors que DELETE est sequentiel ... Bref, sur des grosse table : Truncate < 1 sec ... DELETE > 20 secondes.

Truncate réinitialise la valeur de l'auto increment. (ou du compteur ...)


RE: questions autour d'SQL - pascal - 12-02-2010

(12-02-2010, 04:48 PM)Argorate a écrit : Je sais qu'on est pas obligé de faire tout de manière générique, mais le problème c'est que me coltiner 20 fonctions qui font quasiment la meme chose, ça me chagrine un peu Sad


Avec symfony, tu lances une commande, tu ajoutes un lien au menu de ton interface admin, tu configures une ligne pour la sécurité et ça y est.

A+

Pascal


RE: questions autour d'SQL - Argorate - 12-02-2010

Ca ne m'intéresse pas trop, je préfère programmer chaque chose au moins une fois (et oui je suis bête^^).

C'est marrant que tu prennes cette exemple d'ailleurs car je suis justement entrain de coder la partie admin du site que je fais pour mon IUT (un projet qu'on doit rendre), on m'avait proposé de faire un site avec un truc tout fait, et j'ai dit que je préféré tout refaire de zéro, comme ça je pourrais montrer le jour de la présentation que c'est bien moi qui est tout codé. Mais ça après ce n’est pas vraiment ma question, c'est une affaire de choix.

Moi je veux juste savoir ce qui serait le plus judicieux entre les deux propositions que j'ai émises plus haut.

ps: merci keke pour le complément d'information.


RE: questions autour d'SQL - Sephi-Chan - 12-02-2010

(12-02-2010, 03:58 PM)Argorate a écrit : Selon-vous, vaut-il mieux faire des fonctions CRUD (CREATE – READ – UPDATE – DELETE) générique?
exemple: 'update_table($table, $update, $where);'

OU bien faire des CRUD pour chaque table?
exmple 'update_joueur($joueur);'

Dans le premier cas, que contiennent $update et $where ?
Dans le second cas, que contient $joueur ?

Tu peux utiliser les deux : faire une fonction update_table() puis fais des fonctions comme update_joueur() qui se servent de la première. Ainsi, tu factorises l'échappement des données dans la fonction update_table() et dans les fonctions individuelles, tu peux gérer des cas plus particulier.

Je ne connais pas assez ton besoin. Peut-être que la forme générique suffit.


Sephi-Chan, franglais for the win !