"データ要件が素直に読み取れるようであれば、それは良いDB設計である。いっぽう、見ただけではデータ要件が判然とせず、処理様式を調べないとわからないようであれば、それは劣ったDB設計である。DB構造が本来担うべき「意味」を、プログラムコードが代わって抱え込んでいるということだからだ。そのようなアプリはコード量が増えるため、その可読性に関わらず保守性に劣る。"

サロゲートキーは強制されるべきものではない: 設計者の発言