Galerie photos en php bdd ou dossier?

WRInaute discret
Bonjour,
Pour l'instant je stocke les images des utilisateurs dans la bdd : chemin et description.
Or comme je renomme le chemin après upload il est toujours dans le même dossier et son nom est toujours photo1_1.jpg, photo2_1.jpg....

Voulant proposer à mes utilisateurs de pouvoir ajouter une très grande quantité de photos (limité à 10 pour l'instant) je me demande si je ne devrais pas me contenter de parcourir le dossier en php plutôt que de stocker le chemin dans la bdd, je ne stockerais alors que la description?

Y'a t'il vraiment des avantages à stocker le chemin d'une image dans la bdd?

Merci
 
Nouveau WRInaute
Bonjour,

Si vous devez mettre des descriptions en base de données, alors autant tout mettre en base de données non ?
Quitte à faite une requête pour la description, ca ne changera pas grand chose d'aller chercher le nom de la photo en plus.

Et s'il n'y avait pas les descriptions en base de données, et bien ça dépendrait des fonctionnalités de votre application.
Si elle se limite et se limitera toujours à parcourir tout un dossier de photos pour tous les afficher, ça vous suffirait de parcourir le dossier en php. Mais si vous comptez la développer et, par exemple, faire des comptes utilisateurs, vous aurez peut-être besoin de savoir à quel utilisateur appartiennent certaines images, et là il vous faudra des comptes utilisateurs en base de données.
 
WRInaute discret
Merci pour votre réponse
Je stocke tout dans une seule table donc je dois rajouter autant de champs par photo : chemin_photo1, description_photo1
Si je propose d'ajouter 50 photos ça alourdit beaucoup!

Je vois deux solutions:

-je continue a stocker les descriptions dans ma table et je parcours le dossier pour les images(mon application ne va pas évoluer à ce niveau)

-ou je crée une deuxiéme table indépendante pour les photos
 
WRInaute accro
pouloupoupo a dit:
Je stocke tout dans une seule table donc je dois rajouter autant de champs par photo
erreur de conception grave pour une base. Si tu veut 10 photos par utilisateur cela veut il dire que tu va avoir une table avec 10 champs ? 100 si c'est 100 images ?

la solution est d'avoir une table pour tes images
une table pour tes utilisateurs
et une table qui relie les utilisateur et les images avec leur id respectifs.
 
WRInaute accro
Tu auras une table qui permettra de relier les images aux utilisateurs.

Du genre :

Table Image
id_image
id_utilisateur
fichier_image
description_image

Donc oui, une entrée dans cette table = une image associée à un utilisateur.
 
WRInaute accro
pouloupoupo a dit:
ok mais j'aurais toujours autant de champs que d'images dans la table des images?!
non, 3 champs
id_image (auto_increment) id_user (integer) et image_content, et chaque utilisateur aura autant d'enregistrements que d'images
 
WRInaute discret
hum hum et je récupére les images qui ont le même id_utilisateur

Ca change tout (mon script ) mais ca semble beaucoup plus souple ! merci
 
Discussions similaires
Haut