テーブルとは?:データ(レコード)の保管庫
ココナラのようなプラットフォーム上において、ユーザーが公開プロフィールに書き込んだ情報は会員情報としてマスタテーブルに登録される。
多くの場合、会員番号以外はユーザー自身で自由に変更できる。
一方で、会員同士の商取引がメインの場合、日々更新される取引実績を格納するためのデータ保管場所も必要になる。
そんなときに用いられるのが、トランザクションテーブル。Excelのようにすべてのデータを横並びに一覧表示させる方法もあるが、登録したすべての会員が商取引に参加するとは限らないため、会員名簿としてのマスタテーブルと活動記録のためのトランザクションテーブルという風に、目的ごとにテーブルを分けて効率よく管理を行うのが一般的。
それぞれのテーブルの共通項として、たとえば会員番号を配備することで、別々のテーブルで変更が行われても、お互いのテーブルに更新内容を紐づけ(リレーション)することが可能。
プロフィール情報の変更や新たな商取引の追加にも混乱することなく、必要なときに関連項目を正しく結びつけ確認できる。
これこそAccessの持つリレーショナルの構造であり、得意分野らしい。
逆に言えば、1枚のシートで完結できるデータ整理にはExcelが向いている。
主キー&外部キー:結合された各々のテーブル上で果たす役割の違い
各テーブルの橋渡し役の「会員番号」は、会員名簿としてのマスタテーブル上では他の番号との重複が認められず、唯一無二かつ一度きりの登場。レコード情報を引率する主役であり「主キー」と呼ばれる。
一方、日々の商取引を記録するためのトランザクションテーブルにおける会員番号は、どの会員の取引かを特定させるためにマスタテーブルから拝借された番号であり、トランザクションテーブルにとってはよそ者であることなどから「外部キー」と呼ばれる。
ここでの会員番号は取引明細に応じて繰り返し登場することもあれば全く登場しないこともあるが、「取引コード」などトランザクションテーブル用の引率役としての主キーがちゃんといるのでテーブル内の秩序は保たれる。
「取引記録を表示・編集するためのフォームを作りなさい」と命じられた場合の「会員番号」はトランザクションテーブル上の「外部キー」を用いる。
「会員情報を表示・編集するためのフォームを作りなさい」と命じられた場合の「会員番号」はマスタテーブル上の「主キー」を用いる。
見た目は同じ「会員番号」コードでも「外部キー」には所属するトランザクションテーブルの主キーである取引コードに会員情報を補てんする役目があり、「主キー」にはマスタテーブルの守備範囲内においてテーブル内の情報を統率する役目がある。
フォームの用途に応じて相応しい方を選択する。
ここを取り違えるとリレーションは目的通りに機能しない。