テーブル カラムの規約

33日目です。
サービスやシステム開発に当たって、最初にするべき重要なことがデータベース設計だと学びました。
(データベース設計をしっかりと行うことで、サービスが複雑になった場合でも効率的にデータの操作を行うことができるためです。逆にここがしっかりしていないと、後からカラムを追加する必要などが生じ、他のところも修正する必要が出てきてしまいます。)

データベース設計が大切と言うことはわかったのですが、設計の中で何が大切なのか、何を気をつければ良いのかなと感じることがありました。
それは、チャットアプリに必要なテーブルの設計をし、メンターにプルリクエストを出したのですが、「(グループ名を意味する)カラム名はgroupではなくnameにしましょう」とアドバイスをもらった時です。
言われるがまま修正し、初めてLGTMをもらったので嬉しくてそのままにしてしまったのですが、何故「group」だと良くなかったのか・・・?とモヤモヤしました。
そこでカラムを作る際の規約を調べました。

前提

  1. 大文字を利用しない(小文字で統一を図る)
  2. 複数単語の連携はスネークケース
  3. ローマ字ではなく英語表記
  4. 略名は利用しない

カラムの命名規約

  1. ある瞬間の状態(ステータス)を表す名前とする(ある任意のタイミングの情報を管理すると言うデータベースの特性があるため。)
    例)name, age , is_workingなど
  2. 他テーブルの主キーとジョインするカラム(外部キー)はテーブル名(単数形)_id
    例)user_id, category_id
  3. 時間を表すカラムは受動態_on受動態_at
    例)closed_on, created_at

データベースオブジェクトの命名規約 - Qiita

1テーブルが持つべき情報量として妥当なカラム数とは

10以下が妥当、それ以上超える設計の場合は正規化ができないか見直す

下記の著者の方が抽出した良く使われるカラム名100の中にgroupもありましたが、一番使われているのはnameなのですね。複数単語の連携はスネークケースで書くそうなので、group_nameでも良いのかなとは思います。「group」よりは「name」がベターと言うだけだったのかもしれませんが、どう言う意図で「name」がベターだと言ったのか、明日聞いてみます。

先人達から学ぶRailsのテーブル設計 - Qiita


本日はSQLやデータベース設計について学びました。
明日はsassやhamlの学習をし、チャットアプリのフロントを実装していきます。
個人的にHTML&CSSJavaScriptより、バックエンドを学習している方が楽しいのですが、フロントの知識があればUIやUXの向上になると思うので、しっかり勉強します。