データベースの使用にあたり、開発者は様々なテーブルを作成してデータベース操作を行います。本記事は、開発者がデータベース内のテーブル命名を規範化することを目的としています。
テーブル命名
テーブル名の規範は、MySQLモードとOracleモードで以下の通りです:
OceanBaseデータベースMySQLモードの一般的な規範
- 小文字、数字、アンダースコアで構成され、小文字で始まり、小文字または数字で終わる。
- 長さは3文字以上(開発規範)で、データベースのテーブル名の最大制限文字数未満であること。
- OceanBaseデータベースMySQLモードで定義されているキーワードや予約語を名前に含めない。
注意
OceanBaseデータベースMySQLモードでは、現在テーブル名の最大長は64文字です。具体的なバージョンによっては制限が異なる場合があります。
OceanBaseデータベースOracleモードの一般的な規範
- 大文字、数字、アンダースコアで構成され、大文字で始まり、大文字または数字で終わる。
- 長さは3文字以上(開発規範)で、データベースのテーブル名の最大制限文字数未満であること。
- OceanBaseデータベースOracleモードで定義されているキーワードや予約語を名前に含めない。
注意
- OceanBaseデータベースOracleモードの規範は、大文字と小文字の要件を除き、その他はOceanBaseデータベースMySQLモードの規範と同じです。
- OceanBaseデータベースOracleモードでは、現在テーブル名の最大長は64文字です。具体的なバージョンによっては制限が異なる場合があります。
テーブル名は、英字で始めることを推奨します。
テーブル名は、直感的に理解しやすいものにすることを推奨します。例:「TEST」。
テーブル名は、アンダースコアで始めたり、アンダースコアで終えたりすることは推奨されません。
テーブル名は、数字で始めることは推奨されません。
テーブル名には、システムの予約語やキーワードを使用しないでください。
テーブル名の中にアンダースコーが入り、その間に数字のみが続くことは推奨されません。
テーブル名に複数形の名詞を使用することは推奨されません。
テーブル名は、サブシステム名または標準的な略語で始め、その後に機能名または標準的な略語を「_」で区切って続ける構成が推奨されます。「業務名_テーブルの役割」という形式が望ましく、例:「ACCOUNT_USER」。
テーブル名の後に続く数字の番号は、順序立てて増加させることを推奨します。番号は「00」から始めて増やしていきます。例:「ACCOUNT_USER_00」、「ACCOUNT_USER_01」、「ACCOUNT_USER_02」。
時間を基準に分割したテーブルの名前は、「テーブルワイルドカード名_時間」という形式が推奨されます。時間は、テーブル内のデータの日時を4~6文字で略記したものを使用することを推奨します。例:「ACCOUNT_USER」テーブルの2022年1月のパーティションテーブルの名前は「ACCOUNT_USER_2201」となります。
中間テーブルは中間結果セットを保持するために使用され、命名規則は「tmp_テーブル名(または略称)_列名(または略称)_作成時間」とすることを推奨します。例:「tmp_account_tbluser_20220224」。
バックアップテーブルは、ソーステーブルのスナップショットをバックアップまたは取得するために使用され、命名規則は「bak_テーブル名(または略称)_列名(または略称)作成時間」とすることを推奨します。例:「bak account_tbluser _20220224」。