le_duche
Messages postés159Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention26 février 2009
-
4 nov. 2008 à 12:20
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 2021
-
4 nov. 2008 à 13:19
Bonjour, je suis débutant en php/mysql, et pour mon apprentissage j'ai
décidé de faire une petite application qui classe les films que je
possède. Mais me voilà confronté à mon premier grand problème:
Pour simplifier le problème, j'ai une table "film" qui contient entre
autres un ssn unique et un table "galerie" qui contient deux colonnes:
ssn_film et url. Cette disposition se justifie je crois par la
possibilité d'avoir plusieurs images par film.
La fiche d'un film recense évidement toutes les images qui lui sont associées.
La création d'un nouveau film par l'utilisateur se fait sans problème,
j'ajoute autant de fois qu'il faut une nouvelles image avec le ssn de
mon nouveau film dans ma table "galerie".
Vient le moment de l'édition !
Le formulaire d'édition propose par défaut la liste des images
associées au film, que l'utilisateur peut modifier comme il le
souhaite. Cela signifie qu'au final il y a trois types d'images:
1) Celles qui étaient présentes dans la base de données, mais qui ne le sont plus dans le formulaire proposé par l'utilisateur.
2) Celles qui sont nouvelles et proposées par l'utilisateur.
3) Celles qui étaient déjà dans la base de données et que l'utilisateur a conservé.
Pour enregistrer ces modifications, je vois différentes solutions, mais aucune ne me plait:
A) Supprimer toutes les lignes concernant ce film dans la table "galerie" et ajouter le contenu du formulaire.
B) Récupérer les images déjà présentes via une requete sql, les stocker
dans une liste php, et via le php, les séparer en 3 catégories
pré-citées. Et appliquer les commandes SQL adéquates pour chacune.
C) Ajouter une table temporaire à la base de données, effectuer une
jointure, mettre ce qu'il faut où il faut et supprimer la table
temporaire.
Dans les 3 cas, si le nombre d'images est grand et si les modifications
de l'utilisateur sont petites, ça fait beaucoup de travail pour rien.
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 4 nov. 2008 à 13:19
Salut,
Je ne suis pas un grand spécialiste du dév Web ou base de données. Mais
ta solution B me parait pas trop mal. La A est radicale et aussi
efficace. Qaunt à la C, on peut éviter ça grace aux solutions A et B.
Pour ta dernière remarque a propos de la quantité, la solution A est la
meilleure : la plus rapide et la moins prise de tête à développer.
Je ne suis pas tout a fait d'accord avec toi quand tu dis : "ça fait beaucoup de travail pour rien"
Ta solution A est rapide et demande le moins d'opérations de vérification.
A mon avis :
Un "violent" delete + des insert seront généralement plus rapide que :
select, je compare chaque ligne, si ok ou non : update ou insert ou delete.