程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用 MySQL Date/Time 類型

使用 MySQL Date/Time 類型

編輯:關於PHP編程

 由於曾經和他是同一個團隊的,所以對於其我很熟悉他那“潔癖”的做法,對於他的很多的觀點我也非常的贊同;但是有一件非常不理解的地方就是設計數據庫的時候總是會回避使用 Date/Time 類型。他的做法是將時間相關的字段設置為 INT(10) 類型,然後用 UNIX 時間戳來存儲。而我本人對於這點做法非常的不贊同:

首先,是類型操作的不同,類似於 wiLdGoose 這樣做法的“時間計算”實質上是整形之間的操作(而且這個整形非常大,長度為 10)。更有甚者,將時間戳設置為 VARCHAR(10) ,由此引發的效率問題不言而喻。

至於時間計算和整形計算乃至字符串的計算的效率問題,這篇文章非常能說明問題。

其次,是邏輯方面的操作問題。這是使用時間類型的優勢,尤其是在需要高精度的項目上。比如需要“前一個星期的數據”和“獲得從數據庫建立以來每個星期一的數據”,這樣的操作如用 wiLdGoose 兄的做法復雜度可想而知。

最後,就是直觀不直觀的問題,可以理解的是我們的大腦是不會直接將這一大串的時間戳轉換成日期格式的。相比而言,直接使用時間類型明顯就直觀得多(它本身就是時間格式)。

而我目前的團隊也還是在使用類似的方法。本人對於類似技術細節也爭執了良久,但由於崗位和決定權的問題,團隊還是無法采納本人的意見,甚為遺憾。

MySQL 定位為簡單快速的 DBM 自然能迅速的駕馭,但是另一方面很容易造成不會深入下去的局面。對於此,我們更應該注意每一項的數據庫設計細節,一項產品不斷添加新的功能到最後都是面向應用的。

最後,附 MySQL 官方的時間和日期函數的手冊。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved