Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

DB設計(MySQL)

●日付を扱うときtypeはdatetimeではなくint(10)unsignedにしたほうがプログラム上扱いやすい。
理由)出力が下記のようになるから。

datetime : 2013-01-09 23:59:59
int(10)unsigned : 1357722137(UNIX TIMESTAMP)

※テーブルが更新された時の日付を残したいなら、typeは timestamp にし、Extraに on update CURRENT_TIMESTAMP と記述すると自動で更新した時間が格納される。

●unsignedとは
tinyintは -128~127 の256桁を格納できる。(1byte)
unsignedをつけると整数のみ、0~255 を格納できる。

●intの種類
intにはtinyintやmediumintなど、バイト数によって種類がある。
使う桁数によって使い分ける。

Field Type Null Key Default Extra Description
id mediumint(6) unsigned NO PRI NULL unique
open_date int(10) unsigned NULL opening date
up_date timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP update date

参考)http://dev.mysql.com/doc/refman/5.1/ja/numeric-types.html