/note/tech

UserテーブルのID列はidかuser_idにするか悩む...という悩みとそのリアクション

UserテーブルのID列はidかuser_idにするか悩む

ほかのテーブルとカラム名完全一致するのが楽なんもわかるしUserの持っているIDなのだからuser_がついてしまうと冗長なのもわかる

@fujikenbotebote

本来的にはuser_idであるべき派ですけど、フレームワークの都合でidにせざるを得ないことが多い…

@a_suenami

テーブル名がネームスペースとして機能するからそこで表現できるのをカラム名にもつけるのは冗長だというのがid派の主張だと思うんですが、リレーショナル演算の最たる操作として結合や射影がありカラム(数学的には"項")はそれ単体で自分が何者かを表現しきれないといけないと思ってるのですよね。

@a_suenami

RDBを使っている理由がリレーショナルモデル以外の理由であり実態はオブジェクトである(≒必ず各行をオブジェクトにマッピングして使う)という感じであれば確かにテーブル名をネームスペースとみなしていい気もする。

@a_suenami

完全にサロゲートキーならSELECTに出てこないのでいいけど、わりと id 付きで as user_id とかしてレポート出さないといけないことが多くて、それ実質連番管理があっち側ってだけのナチュラルキーじゃんって思いますね

@tanakahisateru

けどまあ、言い出したら、ぜんぶの名前を user_name と company_name とかにしないといけなくて、それもさすがにuser_created_at と company_created_at なんかまでいくと、俺は何をやってるんだってなってきます

@tanakahisateru