Per noi è difficile determinare ciò che è importante per voi. Un approccio potrebbe essere quello di conservare tutte le proprietà di una tabella creato qualcosa di simile (sintassi SQL approssimativa):
create table exif_info (
photo_id integer,
name varchar,
value varchar
);
Ogni riga di questa tabella associa proprietà una EXIF con uno foto. Quindi è necessario un intero gruppo di righe per contenere tutte le proprietà EXIF per una singola foto, ma questo è esattamente ciò che i database relazionali sono bravi a.
In questo modo, è possibile memorizzare tutte le informazioni disponibili senza dover decidere ora cosa potrebbe essere importante in seguito.
fonte
2009-07-01 01:41:04
Accetto che l'OP deve decidere quali informazioni sono importanti per loro. Tuttavia, non concordo con la memorizzazione dei dati nelle coppie nome/valore. In pratica, è molto difficile creare una query efficiente come "selezionare tutte le foto e i loro attributi acquisiti con la fotocamera X in modalità iso Y e la lunghezza focale tra A e B". Stai meglio con colonne discrete per ogni informazione importante. Le coppie nome/valore funzioneranno solo per query semplici come "seleziona tutti gli attributi della foto per il numero di foto X". – Convict
Ma diverse fotocamere hanno dati EXIF diversi e possono aggiungere nuovi dati in futuro. Riuscite a indovinare tutte le future funzionalità della fotocamera digitale che verranno tracciate da EXIF? –
@mgb: No, e il punto è che non è necessario conoscere tutte le possibili proprietà in anticipo. Ogni singola foto può avere il proprio set di proprietà, indipendentemente da qualsiasi altra foto. –