2009-07-01 55 views

Trả lời

9

Thật khó để chúng tôi xác định xem điều quan trọng là dành cho bạn. Một cách tiếp cận có thể là để lưu trữ tất cả các thuộc tính trong một bảng được tạo một cái gì đó như thế này (cú pháp SQL xấp xỉ):

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

Mỗi hàng trong bảng này cộng sở hữu một EXIF ​​với một ảnh. Vì vậy, bạn sẽ cần một bó toàn bộ các hàng để giữ tất cả các thuộc tính EXIF ​​cho một ảnh duy nhất, nhưng đây chính xác là những gì cơ sở dữ liệu quan hệ tốt.

Bằng cách này, bạn có thể lưu trữ tất cả thông tin có sẵn mà không cần phải quyết định bây giờ điều gì có thể quan trọng sau này.

+2

Đồng ý rằng OP phải quyết định thông tin nào là quan trọng đối với họ. Tuy nhiên, không đồng ý với việc lưu trữ dữ liệu trong các cặp tên/giá trị. Trong thực tế, rất khó để tạo một truy vấn hiệu quả như "chọn tất cả các ảnh và thuộc tính của chúng được chụp bằng máy ảnh X ở cài đặt iso Y và độ dài tiêu cự giữa A và B". Bạn tốt hơn với các cột rời rạc cho từng phần thông tin quan trọng. Cặp tên/giá trị sẽ chỉ hoạt động cho các truy vấn đơn giản như "chọn tất cả các thuộc tính ảnh cho số ảnh X". – Convict

+0

Nhưng các máy ảnh khác nhau có dữ liệu EXIF ​​khác nhau và có thể thêm dữ liệu mới trong tương lai. Bạn có thể đoán tất cả các tính năng máy ảnh kỹ thuật số trong tương lai sẽ được EXIF ​​theo dõi không? –

+0

@mgb: Không, và vấn đề là bạn không cần phải biết tất cả các thuộc tính có thể trước thời hạn. Mỗi ảnh riêng lẻ có thể có các thuộc tính riêng, độc lập với bất kỳ ảnh nào khác. –

4

Đối với câu hỏi thứ hai của bạn ...

Picasa

  • ngày và thời gian mà ảnh đã được chụp
  • camera làm & mô hình
  • Nghị quyết
  • Định hướng
  • Độ dài tiêu cự
  • Aperture
  • ISO tốc độ
  • GPS vĩ độ và kinh độ

Flickr

  • Máy ảnh
  • Tiếp xúc
  • Aperture
  • Độ dài tiêu cự
  • Tốc độ ISO
  • Exposure Bias
  • flash
-1

Thực ra, tôi muốn giới thiệu lưu trữ EXIF ​​như một blob (json?) Kể từ khi có sự biến đổi lớn giữa các thiết bị tạo ra EXIF. Nó có thể dễ dàng hơn để kéo nó như một mâm cặp và sau đó hoạt động trên nó.

Nếu đây là trang web chia sẻ ảnh, có thể bạn cũng muốn lưu trữ thông tin IPTC, có thể theo cách tương tự.

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

+0

chỉ khi bạn không muốn tìm kiếm thông tin EXIF ​​bằng SQL. Nếu bạn muốn tìm kiếm trên ISO, thì bạn cần nó trong một trường của riêng nó. – Val

+0

Nó không được liệt kê như là một yêu cầu để tìm kiếm thông qua SQL. Tôi sẽ nghĩ cho một trang web đủ lớn mà tìm kiếm sẽ được xử lý bởi một cái gì đó như Lucene vì vậy đây sẽ không phải là một vấn đề. Nhưng sau đó một lần nữa, có lẽ OP muốn thực hiện lựa chọn trên ISO ... –

-2

EXIF ​​là siêu dữ liệu. Tại sao không sử dụng định dạng dữ liệu được thiết kế từ đầu để xử lý siêu dữ liệu? EXIF có thể dễ dàng được đưa vào RDF, có rất nhiều công cụ, thư viện và tùy chọn lưu trữ.

Các vấn đề liên quan