データベースカラム名のためのテキストケース変換

テキストをsnake_caseを使用して適切なデータベースカラム名に変換する方法を学びます。SQLデータベースの命名規則、ORMマッピング、一貫したカラム命名の重要性を解説します。

Real-World

詳細な説明

データベースカラム名のためのテキストケース変換

データベースのカラム命名には、人間が読めるテキストをSQL慣例に従うsnake_case識別子に変換する必要があります。一貫したカラム命名はクエリの可読性を向上させ、エラーを防止し、ORMマッピングを簡素化します。

基本的なカラム名変換

入力:  User First Name
出力:  user_first_name

入力:  createdAt
出力:  created_at

入力:  Is-Active
出力:  is_active

なぜデータベースにsnake_caseか?

  1. 大文字小文字の区別なし: ほとんどのSQLデータベースはクォートされていない識別子を大文字小文字を区別しないものとして扱います。snake_caseはこの曖昧さを回避します。
  2. クエリでの可読性: user_first_name はSQLで userfirstname より読みやすい。
  3. クォート不要: 大文字小文字混在の名前はPostgreSQLでダブルクォート("firstName")が必要で、エラーが起きやすい。
  4. 普遍的な慣例: PostgreSQL、MySQL、SQLite、Oracleすべてが慣例的にsnake_caseを使用。

一般的なデータベース命名パターン

-- テーブル名: 複数形、snake_case
CREATE TABLE user_profiles ( ... );
CREATE TABLE order_items ( ... );

-- カラム名: snake_case
user_id, first_name, email_address, created_at, updated_at, is_active

-- 外部キー: 参照テーブルの単数形_id
user_id, order_id, product_id

-- タイムスタンプ: action_at
created_at, updated_at, deleted_at

-- ブーリアン: is_形容詞 または has_名詞
is_active, is_verified, has_subscription

ORMフィールドマッピング

ORMは通常、データベースのsnake_caseとプログラミング言語の慣例の間で変換します:

データベース:      user_first_name     (snake_case)
JavaScript/TS:   userFirstName       (camelCase)
Python:          user_first_name     (snake_case — 同じ!)
Java:            userFirstName       (camelCase)
C#:              UserFirstName       (PascalCase)

データベース別の命名規則

データベース 慣例
PostgreSQL snake_case(強制) user_first_name
MySQL snake_case(推奨) user_first_name
SQL Server PascalCase(一般的) UserFirstName
Oracle UPPER_SNAKE(伝統的) USER_FIRST_NAME

エッジケース

  • 略語: "URL""url""API Key""api_key"
  • 数字: "Address Line 2""address_line_2"
  • 一文字のカラムは可読性のために避けるべき。
  • 最大長: ほとんどのデータベースは識別子を63-128文字に制限。

ユースケース

データベースカラム名の変換は、要件文書からの新しいデータベーススキーマの設計、スプレッドシートデータからのマイグレーションスクリプトの生成、アプリケーションコードとデータベースカラムの間をマッピングするORMモデルの構築、データベーススキーマを共有するマイクロサービス間の命名の一貫性確保に不可欠です。

試してみる — Text Case Converter

フルツールを開く