Nous sommes actuellement le 12 Juil 2026, 23:18

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 7 message(s) ] 
Auteur Message
MessagePublié: 20 Déc 2003, 17:46 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Bonjour, je vais faire un site où on pourra uploader nos propres photos, et elles seront ensuite disponibles pour affichage selon l'événement (de la photo) ou encore par les personnes qui sont sur la photo.

J'ai de la misère à m'imaginer comment structurer tout cela.

1) Sur la page de l'upload, je dois faire spécifier à l'utilisateur quel événement la photo représente, et il doit aussi spécifier qui apparaît sur la photo. J'ai pensé afficher une liste de noms disponibles (à partir d'une table mysql) ainsi qu'un bouton pour ajouter un nom. Même chose pour les événements. Comme ça, on peut éviter les erreurs du style : david / David. Est-ce une bonne manière ? J'afficherais une liste où on peut choisir plusieurs éléments avec CTRL.

2) Une fois les photos uploadées, je dois les « classer ». Moi je vois 2 options : une où j'ajoute le nom du fichier dans une table de ma bd, avec les détails en plusieurs colonnes (personne1, personne2, personne3, événement), ou alors directement dans le nom du fichier. Après l'upload, le fichier serait renommé par exemple VoyageCanada_Fred_David_Marc_Jean.jpg , avec autant de noms que de personnes sur la photo. Y a-t'il des inconvénients à utiliser de longs noms de fichier ?

Merci beaucoup!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 18:25 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Tu serais mieux avec une table de relation.

Imagine une photo de groupe.. 42 personnes! ;)

Il te faut donc 3 tables: Photos, Personnes et Personnes-Photos.

S'il te faut plus de détails sur les relations N à M (plusieurs éléments peuvent être liés à plusieurs éléments dans les deux sens entre deux tables), tu n'as qu'à le demander, on pourra te l'expliquer plus en détails.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 18:36 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Je veux bien plus d'explications, mais je trouvais que la façon des noms de fichiers était pratique car j'ai déjà une grosse banque de photos avec tous les noms (style David1.jpg, David2.jpg, etc.) et ainsi je n'aurais qu'à les placer dans le dossier des images et ça serait OK, au lieu de devoir les entrer à la main 1 par 1... :?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 18:54 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Siger a écrit:
Je veux bien plus d'explications, mais je trouvais que la façon des noms de fichiers était pratique car j'ai déjà une grosse banque de photos avec tous les noms (style David1.jpg, David2.jpg, etc.) et ainsi je n'aurais qu'à les placer dans le dossier des images et ça serait OK, au lieu de devoir les entrer à la main 1 par 1... :?


Tout dépend de tes besoins.

Si la méthode des noms de fichiers te conviens, pourquoi chercher plus loin?

La méthode avec une base de donnée te permet d'entrer des méta-données, ce qui peut être utile pour des recherches ou des classements par exemple.

Mais ça dépend toujours de ce dont tu as besoin... je ne connais pas tes photos ni leur utilisation de façon exaustive, je ne peux donc que conseiller mais je ne peux pas donner d'opinion.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 19:59 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Je disais ça car je ne sais pas si ça a des désavantages, car scanner tous les fichiers d'un répertoire pour trouver lesquels contiennent le mot recherché dans leur nom, ca doit être moins optimal qu'une requête par sql.

Pourriez-vous m'expliquer un peu plus sur ce que pourrais m'apporter une table de relation ? J'aurais tous les noms des photos dans une table, puis toutes les personnes enregistrées dans une autre table, et une 3e table contiendrait les liens entre elles ?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 21:10 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
La performance dépend de la quantité de photos, surtout si vous utilisez la méthode par les noms de fichiers. Si vous avez plusieurs dizaines de photos, ça risque de paraitre au niveau de la performance.

Pour les tables, vous avez raison, une table de photos, une table de personnes et une table de liens.

Donc, une relation plusieurs à plusieurs c'est quand chaque item peut contenir plusieurs éléments et que chaque élément peut être contenu dans chaque item. C'est notre cas puisque chaque photo peut contenir plusieurs personnes et que chaque personne peut apparaître sur plusieurs photos.

On se définit donc une table de photos et une table de personnes. On peut y mettre des informations complémentaires qui pourraient servir dans des recherches ou dans de la disposition d'information par exemple.
Code :
[photos]
photo_id  photo_desc                       photo_date  photo_fichier
--------  -------------------------------  ----------  -------------
1         Jean devant la maison            2000-10-04  Jean1.jpg
2         Jean et Simone en skidoo         2000-10-11  JeanSimone.jpg
3         Michel au party de noël 2000     2000-12-24  MichelBrosse.jpg
4         Michel dans les bras de Noémie   2000-12-24  MichelNoemie.jpg


Code :
[personnes]
pers_id  pers_nom            pers_birth  pers_comment
-------  ------------------  ----------  ------------------------------
1        Michel Simard       1955-02-11  Parrain de Jocelyn
2        Jean Couillard      1957-05-29  Mari de Simone
3        Simone Couillard    1961-12-11  Simone Simard
4        Noémie Bradette     1977-05-20  Blonde à Charles chez Michel


Code :
[photos_personnes]
photo_id  pers_id
--------  -------
1         2
2         2
2         3
3         1
4         1
4         4


Dans la table photos_personnes, vous voyez donc que pour chaque photo, nous enregisrtons une entrée pour chaque personne. Nous voyons que sur la photo #2, il y a deux enregistrements car il y a deux personnes sur la photo. Aussi, nous pouvons savoir que la personne #1 apparaît sur 2 photos également. C'est donc un lien de plusieurs à plusieurs.

Ensuite, quand vous faites une recherche des photos d'une personne, vous affichez le contenu de la table des personnes et récupérez le pers_id en paramètre, vous pouvez l'utiliser ensuite dans une requête SQL:

Code :
$pers_id = $POST['pers_id'];
$sql_string = "SELECT Photos.* From photos, photos_personnes WHERE photos.photo_id = photos_personnes.photo_id AND photos_personnes.pers_id=$pers_id";


est-ce compréhensible?

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 20 Déc 2003, 21:28 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Merci beaucoup, j'y vois plus clair :D J'ai bien compris et je vais commencer à programmer le tout sous peu. Je vous reviendrai avec ça sous peu.


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 7 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site