
データベースの物理設計する上で考慮するポイントをまとめておきます。
テーブルを作る際の基礎知識
テーブル名(物理名)、列名(物理名)をつける。
「日本語名」も付けることはできますが、「アルファベット」の名前を付けることが多いです。
最終的にテーブルが作られる際に使われるテーブル名や、列名を「物理名」と呼びます。(なお、論理設計までで利用してきた名前は、「論理名」と呼びます。)
列の型を決定する。
DBMS製品によって、異なるので注意が必要です。
数値型
INT | 4バイトの整数型、整数型で一番よく使われます。どれを使うか迷った場合はこれを使いましょう。 |
BIGINT | 8バイトの整数型 |
UNSIGNED(符号なし)
通常はプラスとマイナスどちらにも伸びますがこのオプションを使うとプラスだけに伸びます。
文字列型
VARCHAR | 短い文字列の場合に使う。基本的にこちらの方がパフォーマンスが良くなります。(インデックスなど) |
TEXT | 長い文字列を扱う場合に使う。 |
日付型
色々な種類がありますが、日時両方登録したいのでDATETIME型を基本的には使います。
制約、デフォルト値を決定する。
これも、DBMS製品によって、異なるので注意が必要です。
インデックスを決定する。
DBMSによって、インデックスの性質や、設定方法が異なるので注意です。
インデックスについては、下記の記事でも解説しています。
全テーブルで共通して作成する項目について
作成日時
後で、いつ作られたレコードなのかを把握するために基本は作っておきます。
更新日時
後で、いつ更新されたレコードなのか把握するために基本は作っておきます。
共通項目(作成日時、更新日時)はテーブルのどこに配置するか?
主キーであるid列はともかく、「作成日時」、「更新日時」はテーブルのどこに配置するか迷いますよね。
テーブルの先頭付近に配置する派
共通項目ということで、先頭に配置するシステムもあります。最後尾だと、新しいカラムを追加する際に、変なテーブルになってしまいかねませんしね。
テーブルの最後尾に配置する派
やはり、基本的に主要項目ではないということで、後ろに置く設計です。ただ、この場合、新しい列が追加された場合は最後尾に追加することになってしまいます。(途中に追加する場合は、テーブルの再作成を行わないとならないため。)
唯一の利点としては、テーブルの作成後から追加された項目が一目で分かるという点です。(地味にこれは大きな利点です。)
基本的には、「テーブルの先頭付近に配置する派」が多そうです。
この記事へのコメントはありません。