RDBMSにおけるcreated_at, updated_atの使用用途と必要性について調べる
なぜ調べるのか?
created_at
とupdated_at
は理由もなく、あって当然のものだと思い込んでいた- アプリケーション側で作成したエンティティに
created_at
,updated_at
を詰め込む不自然さを感じていた(DBのスキーマに引っ張られすぎてる感)
type Account struct { Name string Email string CreatedAt time.Time. # これドメインじゃなくね? UpdatedAt time.Time # これドメインじゃなくね? }
created_at, updated_atの立ち位置
- レコードの作成、更新を記録するで調査目的で使用される
- 各ストレージが自動挿入してくれているのでストレージ側のスコープであり、アプリケーション側のスコープではない
- レコードの作成が頻繁に発生しないマスタデータのような場合はなくても良い
今後
- これまでエンティティに詰め込んでいた違和感のある
created_at
は消せそう。 - エンティティに日付を持たせたい場合は別カラムを意味のある名前で作成する。
- created_at, updated_atは障害発生時の調査ログとして作成した方が良い