Mysql
關於照片應用程序數據類型的問題
我正在為照片組織應用程序進行關係數據庫設計,正如我之前提到的,我對數據庫非常陌生。我需要包括曝光、光圈值和焦距。我提供的值是:
曝光:通常以秒錶示,例如使用 1/1000 表示快速曝光,20 表示非常慢;
孔徑:範圍從 1.1 到 45 等值;
焦距(毫米):範圍從大約 8 到 1200。
您是否建議將這些表示為具有一系列值的列舉,或者更確切地說,例如用於曝光的 varchar、用於光圈的文本和用於焦距的 int(我使用的是 MySQL)?
我仍然不是 100% 清楚你為什麼要使用哪些數據類型。
再次感謝您的洞察力和建議。
你將如何處理這些數字?
如果您只顯示它們,請使用字元串類型,例如
VARCHAR(20)
.如果您需要對它們進行數學運算,那麼
FLOAT
可能是合適的。如果您要搜尋精確的數值,則可以選擇上述任何一種。
如果您要搜尋一個範圍,那麼可能
FLOAT
.如果該值顯然是一個整數,則使用適當大小的
INT
. 例如,SMALLINT UNSIGNED
允許值 0..64K,適用於像素寬度/高度。但百萬像素將需要INT UNSIGNED
。或者,這可能是一個FLOAT
,如“10.3”百萬像素。如果它只是產品的規格——不可搜尋、不可計算等,則需要更長的字元串,例如“F4.5, 1/400s, no flash”。
或者查看 EXIF 格式的規範。請記住,技術會進步。EXIF 是一種可擴展的格式。
我提取了寬度、高度和文件大小,以及 EXIF 的字元串。這對我所擁有的來說已經足夠了,同時不會失去 EXIF 資訊,以防我以後改變主意。