2009-07-01 122 views
7

從數據庫中的照片中存儲EXIF數據的最佳方式是什麼(在我的情況下是MySQL)。這是一個照片分享網站。在數據庫中存儲EXIF信息

什麼是最重要的標籤,什麼是可丟棄的?

回答

9

我們很難確定什麼是對你來說。一種方法可能是存儲在一個表中的所有屬性創建這樣的事情(約計SQL語法):

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

在這個表將每一行一個 EXIF屬性與一個照片。因此,您需要一大堆行才能保存單張照片的所有EXIF屬性,但這正是關係數據庫擅長的。

通過這種方式,您可以存儲所有可用的信息,而無需現在決定什麼可能以後重要。

+2

同意OP必須決定哪些信息對他們很重要。但是,不同意將數據存儲在名稱/值對中。實際上,要創建一個有效的查詢非常困難,例如「選擇ISO設置爲Y且焦距在A和B之間時,使用攝像機X選擇所有照片及其屬性」。對於每一條重要信息,您最好使用離散列。名稱/值對只適用於簡單查詢,如「爲照片編號X選擇所有照片屬性」。 – Convict 2009-07-01 04:06:57

+0

但是不同的相機有不同的EXIF數據,可以在將來添加新的數據。你能猜到EXIF將追蹤的所有未來數碼相機功能嗎? – 2009-11-10 18:43:42

4

關於第二個問題......

的Picasa

  • 日期和照片拍攝
  • 相機使&模型
  • 分辨率
  • 方向
  • 時間焦距
  • 光圈
  • ISO感光度
  • GPS經緯度

Flickr的

  • 相機
  • 曝光
  • 光圈
  • 焦距
  • ISO感光度
  • 曝光補償
  • 閃存
-1

其實,我建議存儲EXIF作爲BLOB(JSON?)因爲有跨產生EXIF設備很大的可變性。將其作爲卡盤拉動然後對其進行操作可能會更容易。

如果這是一個照片共享網站,您可能也想存儲IPTC信息,可能是以相同的方式。

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

-2

EXIF是元數據。爲什麼不使用從頭開始設計的數據格式來處理元數據? EXIF可以很容易地放入RDF,其中有大量的工具,庫和存儲選項。

相關問題