
9
8
7
6
5
4
3
2
1
テーブルの列も同じで、配列ほど柔軟に要素数を変化させることができません。
たとえば、四人の子を持つ社員が入社してきたので、この扶養者テーブルに「子 4」
という列を追加しようと思った場合、変更対象はこのテーブルだけでなく、SQL や
データを受け取るアプリケーション側にも及びます。もちろん、ある程度そういっ
た変更を見越して動的にアプリケーションを作り込んでおくことも可能なのです
が、なかなか大変なことです。
列持ちテーブルのもう一つの欠点は、子がいない、または子の数の少ない社員
について、子の列にNULLを使わなくてはならないことです。NULLというのはリ
レーショナルデータベースにおいて非常に厄介な性質を持っていて、NULL が演算
に含まれているとSQL文の結果を混乱させる原因になります
。
このように、列持ちテーブルは、利点と欠点のバランスが拮抗しているため、使
いどころによっては有用です。逆に言うと、特殊な状況でない限り、原則として列
持ちテーブルは使うべきではありません。基本的には「行持ち」のテーブル構成を
採用するべきです。行持ちテーブルは、列持ちテーブルに比べて、欠点の少ない定
石です。
000A 1 達夫
000A 2 信二
001F 1 敦
001F 2 陽子
001F 3 清美
...