2009-07-01 11 views

Répondre

9

Il est difficile pour nous de déterminer ce qui est important pour vous. Une approche pourrait être de stocker toutes les propriétés dans un tableau créé quelque chose comme ceci (syntaxe SQL approximative):

create table exif_info (
    photo_id integer, 
    name varchar, 
    value varchar 
); 

Chaque ligne de cette table associe une propriété EXIF ​​avec une photo. Vous auriez donc besoin d'un tas de lignes pour contenir toutes les propriétés EXIF ​​pour une seule photo, mais c'est exactement ce à quoi servent les bases de données relationnelles. De cette façon, vous pouvez stocker toutes les informations disponibles sans avoir à décider maintenant ce qui pourrait être important plus tard.

+2

D'accord que OP doit décider quelle information est importante pour eux. Cependant, en désaccord avec le stockage des données dans les paires nom/valeur. En pratique, il est très difficile de créer une requête efficace telle que "sélectionner toutes les photos et leurs attributs pris avec la caméra X à la position iso Y et à la distance focale entre A et B". Vous êtes mieux lotis avec des colonnes distinctes pour chaque élément d'information important. Les paires nom/valeur ne fonctionneront que pour des requêtes simples telles que "sélectionner tous les attributs de photo pour le numéro de photo X". – Convict

+0

Mais différentes caméras ont des données EXIF ​​différentes et peuvent ajouter de nouvelles données dans le futur. Pouvez-vous deviner toutes les futures fonctionnalités de l'appareil photo numérique qui seront suivies par EXIF? –

+0

@mgb: Non, et le fait est que vous n'avez pas besoin de connaître toutes les propriétés possibles à l'avance. Chaque photo individuelle peut avoir son propre ensemble de propriétés, indépendamment de toute autre photo. –

4

Pour votre deuxième question ...

Picasa

  • Date et heure que la photo a été prise
  • Caméra Marque Modèle &
  • Résolution
  • Orientation
  • Focale
  • Ouverture
  • ISO vitesse
  • latitude et longitude GPS

Flickr

  • Caméra
  • exposition
  • Ouverture
  • Longueur focale
  • ISO Vitesse
  • exposition Bias
  • flash
-1

En fait, je recommande de conserver le EXIF ​​comme blob (JSON?) Car il existe une grande variabilité dans les dispositifs qui génèrent EXIF. Il peut être plus facile de tirer cela comme un mandrin, puis d'opérer dessus.

S'il s'agit d'un site de partage de photos, vous souhaitez probablement stocker également les informations IPTC, probablement de la même manière.

Voir http://bret.appspot.com/entry/how-friendfeed-uses-mysql

+0

uniquement si vous ne souhaitez pas effectuer de recherche sur les informations EXIF ​​à l'aide de SQL. Si vous voulez rechercher sur ISO, alors vous en avez besoin dans un domaine qui lui est propre. – Val

+0

Il n'était pas répertorié comme une exigence pour effectuer une recherche via SQL. Je pense que pour un site suffisamment grand, la recherche serait gérée par quelque chose comme Lucene, donc ce ne serait pas un problème. Mais là encore, peut-être que l'OP veut faire des sélections sur ISO ... –

-2

EXIF ​​sont les métadonnées. Pourquoi ne pas utiliser un format de données conçu à partir de zéro pour gérer les métadonnées? EXIF pourrait être facilement mis en RDF, qui a des tonnes d'outils, de bibliothèques et d'options de stockage.

Questions connexes