php - アプリケーションまたはデータベースのタイムスタンプ列を更新しますか?

php mysql timestamp

データベースの各テーブルにdate_created列とdate_modified列があります。

MySQLトリガーを使用してデータベースでタイムスタンプ列を設定することと、PHPを使用してアプリケーションレイヤーで設定することの利点と欠点は何ですか?

多くのサーバーに展開すると、どちらが保守が容易になり、時間同期が向上しますか?

編集:
Johanはデータベースにタイムスタンプを設定することを推奨しているので、これらは正しい実装ですか?
さらに、すべてのテーブルでdate_createdとdate_modifiedを持つことは良い習慣ですか?
または、特定のテーブルに追加することをお勧めしますか?

date_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
date_modified TIMESTAMP NOT NULL DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
答え
データベースのタイムスタンプ。

マスター/スレーブセットアップで複製する場合、データベースのタイムスタンプは(元のタイムスタンプを使用して)正しく複製されます。

トリガーにタイムスタンプを設定しません(!)。

代わりに、テーブル定義でそれらを指定すると、MySQLは挿入時や更新時に正しいタイムスタンプを自動的に設定します。
テーブルを作成(または変更)するときに、一度設定するだけで済みます。

簡単にはできませんでした。
関連記事

php - Regexを介してアンダースコアと共にUnicode文字を受け入れる

php - サーバーのパブリックフォルダーに送られるすべてのリクエストを処理する1つのPHPファイルを作成することは可能ですか?

php - PHPの型ヒントが、私のクラスを文字列であると考えるのはなぜですか?

php - mysql_connect()からの警告がmysql_error()を生成しない

php - PHP多対多セットID

php - SELECTとJOINステートメントのIDに自分のIDを含めるにはどうすればよいですか?

php - mysql_real_escape_string($ username)次にcookieとして保存し、ログインの確認に使用

php - preg_replaceには式のヘルプが必要です

php - サインアップフォームフィールドに編集不可/削除不可の文を入力する

php - 間違ったリクエスト生成SOAPクライアントPHP