質問: データベースに作成日時を記録する場合、 1、PHP側でdate('Y-m-d h:i:s')のように取得したデータをmysqlのdatetime型に記録する 2、mysqlの型をtimestampにする 一般的にはどちらが正しいのでしょうか? もしくはその時々で使い分けるのでしょうか? その場合のメリットデメリットなどを教えていただけると大変ありがたいです。よろしくお願いします。
回答: > > 一般的にはどちらが正しいのでしょうか? > > もしくはその時々で使い分けるのでしょうか? > > > どのようにしても実現可能な以上は「正しい」という唯一の答えというのは存在しません。 「作成日時」「更新日時」というのを両方持っておきたいのでしたら「作成日時」は初回作成の時以外は更新されてはいけないのでPHPのほうで取得した時間を入れるでしょうし、「更新日時は常に更新されるもの」であればDBをCURRENT_TIMESTAMPにすれば良いですが、 「更新するかどうかを制御したい」という場合はこちらもPHPのほうで取得した時間を入れることになります。 例:ユーザーテーブルにログイン日時を持っているが「これはシステム側で勝手に更新するものだしユーザー自身がユーザー情報を更新した日時じゃないから更新したくない」という”仕様”にした場合、など つまり**「ケースバイケース」**です。 私の場合は基本的にプログラム側から制御したい方ですが、仕様や設計によりCURRENT_TIMESTAMPを選択することもあります。