Mysql

關於照片應用程序數據類型的問題

  • June 21, 2020

我正在為照片組織應用程序進行關係數據庫設計,正如我之前提到的,我對數據庫非常陌生。我需要包括曝光、光圈值和焦距。我提供的值是:

曝光:通常以秒錶示,例如使用 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 資訊,以防我以後改變主意。

引用自:https://dba.stackexchange.com/questions/269547