[BDD] Referençer des photos

Referençer des photos [BDD] - SQL/NoSQL - Programmation

Marsh Posté le 24-02-2004 à 21:06:02    

Salut :hello:
je voudrais savoir quel est le meilleur moyen d'ajouté des critères de selection à des photos avec une base de données ?
 
Par exemple précisé que sur telle ou telle photo on y voit Jocelyne, anne, et christian ?
 
Pour après pouvoir rechercher (par exemple) toutes les photos ayant "anne" .
 

Reply

Marsh Posté le 24-02-2004 à 21:06:02   

Reply

Marsh Posté le 25-02-2004 à 00:19:22    

3 tables. personne, photos et une table de jointure... avec le couple d'ID correspondant...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 02-03-2004 à 15:21:32    

J'aurai voulu avoir d'autres avis ...
Tu es sûr de ton idée là?

Reply

Marsh Posté le 02-03-2004 à 15:23:30    

Parceque du coup je n'aurai pas qu'une table personne, j'aurai aussi une table lieu, une table equipe, car ça marche par équipe ...  
 
Et pis comment je fais après dans la table de jointure pour dire que la photo N° 5 (par exemple) peut être associée aux personnes: Toinou, Jean, Eva ??????
 
;)

Reply

Marsh Posté le 02-03-2004 à 15:38:58    

Sinon tu peux toujours choisir une solution un peu plus "bourrine" qui consiste à faire une grand zone texte dans laquelle tu mets une rapide description de ta photo, genre "jean, paul, pierre, equipe bleu, devant tour de pise" et derriere faire tes recherches sur les photos dont le descriptif contient le mot recherché.

Reply

Marsh Posté le 02-03-2004 à 15:42:52    

Table "trucmuche" :
-> ID
-> NOM
-> TYPE (1 = personne, 2 = lieu, 3 = objet, 4 = ...)
 
Table "yest" :
-> trucmuche_id
-> photo_id
 
Table "photo" :
-> ID
-> fichier

Reply

Marsh Posté le 02-03-2004 à 15:43:00    

Anapajari a écrit :

Sinon tu peux toujours choisir une solution un peu plus "bourrine" qui consiste à faire une grand zone texte dans laquelle tu mets une rapide description de ta photo, genre "jean, paul, pierre, equipe bleu, devant tour de pise" et derriere faire tes recherches sur les photos dont le descriptif contient le mot recherché.


 
et comment tu fais çà concrètement ?
 
Tu récupère le champs => çà te fait une phrase ou plutot une chaine de caractère et après ?


Message édité par protoinou le 02-03-2004 à 15:45:05
Reply

Marsh Posté le 02-03-2004 à 15:44:22    

MagicBuzz a écrit :

Table "trucmuche" :
-> ID
-> NOM
-> TYPE (1 = personne, 2 = lieu, 3 = objet, 4 = ...)
 
Table "yest" :
-> trucmuche_id
-> photo_id
 
Table "photo" :
-> ID
-> fichier


 
et si le gars qui s'appelle Antoine a l'ID 345 , comment çà se passe si il est sur 24 photos?
 
Tu as quoi dans la table yest ? dans ce cas ?

Reply

Marsh Posté le 02-03-2004 à 15:46:15    

protoinou a écrit :

et comment tu fais çà concrètement ?
 
Tu récupère le champs => çà te fait une phrase ou plutot une chaine de caractère et après ?


laisse béton le coup de la description (tu peux toujours en mettre une, mais ne t'en sert pas pour la recherche), c'est lent, et ça donne des résultats tout à faut aléatoires...
Par exemple :
"Rainette posée sur une feuille de nénuphare."
 
Bah si l'utilisateur recherche "phare", bah... Il ve se retrouver avec une grenouille au milieu d'une marre, et il va pas très bien comprendre pourquoi...

Reply

Marsh Posté le 02-03-2004 à 15:47:32    

MagicBuzz a écrit :


laisse béton le coup de la description (tu peux toujours en mettre une, mais ne t'en sert pas pour la recherche), c'est lent, et ça donne des résultats tout à faut aléatoires...
Par exemple :
"Rainette posée sur une feuille de nénuphare."
 
Bah si l'utilisateur recherche "phare", bah... Il ve se retrouver avec une grenouille au milieu d'une marre, et il va pas très bien comprendre pourquoi...


 
LOL jolie image !!
 
Mais alors comment faire?


Message édité par protoinou le 02-03-2004 à 15:47:54
Reply

Marsh Posté le 02-03-2004 à 15:47:32   

Reply

Marsh Posté le 02-03-2004 à 15:48:03    

protoinou a écrit :


et si le gars qui s'appelle Antoine a l'ID 345 , comment çà se passe si il est sur 24 photos?
 
Tu as quoi dans la table yest ? dans ce cas ?


 
trucmuche_id   photo_id
345            1
345            2
345            .
345            .
345            .
345            24
 
Donc tu fais la requête :
 
SELECT photo.fichier FROM trucmuche, yest, photo
WHERE trucmuche.nom = 'Antoine'
AND yest.trucmuche_id = trucmuche.id
AND photo.id = yest.photo_id

Reply

Marsh Posté le 02-03-2004 à 15:48:18    

Comment elle marche les fonctions de recherche sur ce forum ????

Reply

Marsh Posté le 02-03-2004 à 15:48:52    

mal :o

Reply

Marsh Posté le 02-03-2004 à 15:49:26    

avec le coup du phare, en plus évolué. Pas adaptable pour ce que tu veux faire, ça nécessite d'avoir du vrai texte, avec un volume conséquent.

Reply

Marsh Posté le 02-03-2004 à 15:49:45    


J'ai hésité à répondre pareil :D

Reply

Marsh Posté le 02-03-2004 à 15:49:51    

MagicBuzz a écrit :


 
trucmuche_id   photo_id
345            1
345            2
345            .
345            .
345            .
345            24
 
Donc tu fais la requête :
 
SELECT photo.fichier FROM trucmuche, yest, photo
WHERE trucmuche.nom = 'Antoine'
AND yest.trucmuche_id = trucmuche.id
AND photo.id = yest.photo_id


 
Ok c'est cool, ca fait juste une table qui va être énorme, mais bon çà c'est pas trop grave je pense ..
 
Au niveau de MySQL vous connaissez un peu les perte de vitesse lié à la longueur des tables ?

Reply

Marsh Posté le 02-03-2004 à 15:50:21    

MagicBuzz a écrit :


J'ai hésité à répondre pareil :D


 
D'accord LOL !!!

Reply

Marsh Posté le 02-03-2004 à 15:50:28    

t'as combien de photos ?
combien de personnes différentes ?

Reply

Marsh Posté le 02-03-2004 à 15:55:13    

protoinou a écrit :


 
Ok c'est cool, ca fait juste une table qui va être énorme, mais bon çà c'est pas trop grave je pense ..
 
Au niveau de MySQL vous connaissez un peu les perte de vitesse lié à la longueur des tables ?


en faisant des index, ça devrait être complètement transparent.
 
en effet, elle n'est qu'à deux entrées la table, sans la moindre donnée. à partir de là, ta requête durera au moins 10 millisecondes, même avec un nombre certain de lignes...
 
en dessous du million, te pose pas de questions, puisque tu ne fais que des "=". Par contre,avec le coup du résumé (donc "like" ) ça devient très rapidement catastrophique, index ou non.


Message édité par MagicBuzz le 02-03-2004 à 15:56:35
Reply

Marsh Posté le 02-03-2004 à 15:57:16    

MagicBuzz a écrit :


en faisant des index, ça devrait être complètement transparent.
 
en effet, elle n'est qu'à deux entrées la table, sans la moindre donnée. à partir de là, ta requête durera au moins 10 millisecondes, même avec un nombre certain de lignes...
 
en dessous du million, te pose pas de questions.


 
Au moins 10 millisecondes ... euh ... OK :)
 
Sinon on fait comment les Index, quelqu'un peut me faire un cours rapide???
 
Merci :)

Reply

Marsh Posté le 02-03-2004 à 15:58:04    

lorill a écrit :

t'as combien de photos ?
combien de personnes différentes ?


 
Je ne sais pas encore, les personnes pauront les rajouter dans l'ideal :)


Message édité par protoinou le 02-03-2004 à 15:58:29
Reply

Marsh Posté le 02-03-2004 à 15:59:12    

ouais, enfin t'as bien un ordre de grandeur...
mille ? cent mille ? un million ? cent millions ? plus ?

Reply

Marsh Posté le 02-03-2004 à 16:01:44    

Moins de 10 milles de pense

Reply

Marsh Posté le 02-03-2004 à 16:02:00    

ET çà sera sous PHP + Free

Reply

Marsh Posté le 02-03-2004 à 16:02:22    

bah alors comme le dit buzz, t'auras aucun probleme de perf' :o

Reply

Marsh Posté le 02-03-2004 à 16:02:36    

ah, si ptet, vu que c'est sous free :o

Reply

Marsh Posté le 02-03-2004 à 16:02:57    

moins de 10 000 devrait pas poser de problème, même sur les serveurs tout pourris de free ;)

Reply

Marsh Posté le 02-03-2004 à 16:04:21    

PS : Dans l'absolu, tu vas utiliser deux champs int de 32 bits.
 
Donc : 10 000 * (32 / 8) * 2 = 80 000 octets ~~ 80 Ko
 
C'est la taille de la table...
 
Donc franchement, même sur un goupil à partir d'une disquette tu devrais pouvoir faire la requête avec un temps de réponse honorable ;)

Reply

Marsh Posté le 02-03-2004 à 16:07:08    

MagicBuzz a écrit :

PS : Dans l'absolu, tu vas utiliser deux champs int de 32 bits.
 
Donc : 10 000 * (32 / 8) * 2 = 80 000 octets ~~ 80 Ko
 
C'est la taille de la table...
 
Donc franchement, même sur un goupil à partir d'une disquette tu devrais pouvoir faire la requête avec un temps de réponse honorable ;)


 
LOL d'accord je voi :) :)  
 
C'est cool alors ..
 
ET pour les photos vous me conseiller d'utiliser quel mode ?
 
Transfomer chaque photos de façon à les avoir en version petite (taille en octet minimisé) et une autre en version plus grande ???
 
Avec par conséquent dans la table photos, deux liens pour une même photos?
 
Ou alors de gérer çà en HTML=> on part de la grande photo qu'on rétrécit ??

Reply

Marsh Posté le 02-03-2004 à 16:07:53    

lorill a écrit :

ah, si ptet, vu que c'est sous free :o


 
Tu me conseil quoi d'autre à la place ?
Y'a rien de mieux en gratuit qui fait PHP + MySQL

Reply

Marsh Posté le 02-03-2004 à 16:09:29    

rien, je pensais que c'était pour un truc en interne

Reply

Marsh Posté le 02-03-2004 à 16:10:42    

lorill a écrit :

rien, je pensais que c'était pour un truc en interne


 
Comment çà ?? C'est pour un site web, fait bénévolement pour un club de basket :)

Reply

Marsh Posté le 02-03-2004 à 16:16:30    

Pour les images, deux versions c'est mieu qu'une grosse redimensionnée en HTML, sinon l'utilisateur charge quand même toute la photo quand il regarde la miniature, ce qui peut bouffer pas mal de bp si tu fais un album avec plusieurs photos d'un coup.
 
Pas besoin de faire deux liens.
Tu mets les miniatures dans un sous-répertoire "thumbs" avec le même nom que les vraies photos.
A ce moment, t'as juste à rajouter "thumbs" dans le chemin quand tu affiches les miniatures.

Reply

Marsh Posté le 02-03-2004 à 16:16:31    

bah vi, mais comment je le devine ?

Reply

Marsh Posté le 02-03-2004 à 16:17:03    

protoinou a écrit :


Comment çà ?? C'est pour un site web, fait bénévolement pour un club de basket :)


il pensait que c'était sur un serveur dédié, style ce qu'on peut faire avec son pc perso et l'adsl, ou un hébergeur qui coûte cher :)


Message édité par MagicBuzz le 02-03-2004 à 16:17:16
Reply

Marsh Posté le 02-03-2004 à 16:17:39    

lorill a écrit :

bah vi, mais comment je le devine ?


avec ta boule cystal reports :o


Message édité par MagicBuzz le 02-03-2004 à 16:17:50
Reply

Marsh Posté le 02-03-2004 à 16:26:55    

MagicBuzz a écrit :

Pour les images, deux versions c'est mieu qu'une grosse redimensionnée en HTML, sinon l'utilisateur charge quand même toute la photo quand il regarde la miniature, ce qui peut bouffer pas mal de bp si tu fais un album avec plusieurs photos d'un coup.
 
Pas besoin de faire deux liens.
Tu mets les miniatures dans un sous-répertoire "thumbs" avec le même nom que les vraies photos.
A ce moment, t'as juste à rajouter "thumbs" dans le chemin quand tu affiches les miniatures.


 
Ok bien joué pour le rep thumbs...
 
Par contre proukoi est ce que je suis obligé de charger toutes les photos ? Juste les miniatures  en fait ?

Reply

Marsh Posté le 02-03-2004 à 16:28:23    

MagicBuzz a écrit :


il pensait que c'était sur un serveur dédié, style ce qu'on peut faire avec son pc perso et l'adsl, ou un hébergeur qui coûte cher :)


 
Ah ouai tient , qu'est ce qui est mieux, faire un dyndns de chez soit (pour serveur chez soit) ou prendre free, sachant que j'ai ADSL WANADOO OPTION PING en 512/128 ??
 

Reply

Marsh Posté le 02-03-2004 à 16:29:06    

lorill a écrit :

bah vi, mais comment je le devine ?


 
LOL ouai désolé, je pensais que tu lisais dans mes pensées, mais bon tu sais pas faire ..
Mais t'inquiète çà viendra çà .. :)

Reply

Marsh Posté le 02-03-2004 à 16:37:11    

Ca dépend... Qu'y a-t-il sur ton site ? Que des photos ? Leur taille (en ko)
Combien de visites par jour attendues ?
 
Histoire de savoir si ton ADSL ca tenir la charge, ou faire rammer.
 
A savoir qu'une image de 200 Ko prendra 200 / 16 = 12,5 secondes à charger dans le meilleur des cas... C'est donc pas génial, mais si y'a pas 36 personnes en train de pomper à la fois, et que les photos ne sont pas l'élément principal du site, c'est raisonnable.
 
(sur un serveur capable de diffuser à 64 ko (vitesse de dwl de l'ADSL) ça donnera un peu plus de 3 secondes.
 
Par contre, je te déconseille dyndns. En effet, c'est bien, mais les noms de domaine son un peu pourrave...
 
"mon_equipe_de_basket.dyndns.org" c'est moyen à retenir, avant que j'opte pour mon nom de domaine sur mon site, tout le monde passait son temps à me re-demander l'url du site...
 
Donc, un petit tour sur www.gandi.net pour acheter un nom de domaine en .com : 12 ? par an.
 
Puis un petit tour sur www.zoneedit.com pour obtenir des DNS pour ton nom de domaine...
 
Installe "DirectConnect" sur ton PC pour mettre à jour zoneedit (comme pour dyndns) avec ton IP...
 
Attends 48 heures la propagation de ton nom de domaine...
 
Et enfin ton site www.mon_equite_de_basket.com sera en ligne sur ton PC.
 
Investissement minime, et effet "pro" garanti.
 
Free est la solution de secours, parceque entre le "mon_equipe_de_basket.free.fr" chiant à retenir, le fait que la moitié des utilisateurs wanadoo pourront pas y accéder une fois sur deux, et le fait que ton serveur va rammer comme s'il était sur un goupil avec un modem 14.4 bauds, ça fais un peu ridicule. ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed