70 特別なフィールド ‘IndexID’


68と69で例示した「生徒氏名を格納するテーブル”StuMast”」は、下記の如く五つのフィールドに生徒データを格納し、
 年度 → FisYear
 学年 → Grade
 学級 → Class
 出席 → Number
 氏名 → Name
加えて、特別なフィールド’ID’に「一意な番号」を持っています。

対して、The出席簿での実テーブル”Sys_StudentMast”には、’IndexID’なるフィールド(67参照)が追加されています。


‘IndexID’には、その生徒が入学した年度・学年・学級・出席を組み合わせた値、を格納しています。
 ・2020年度1年3組12番の「新入生」なら20010312、
 ・2020年度2年5組31番の「転入生」なら20020531、
よって、これもまたデータ固有(一意, UNIQUE)な値です。


即ちテーブル”Sys_StudentMast”は、’ID’と’IndexID’、二つのフィールドに固有(一意, UNIQUE)な値を抱えており、SQLの教科書に反する(笑)仕様です。

けれどもこれは、システムに不可欠な「冗長性」である、と考えます。
‘IndexID’は、その値を目視して、データの意味を知ることができるのですから!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です