Microsoft Access Club >初心者講座 >アンケート管理ソフト >このページ >次頁 - 前項  サイト内検索


主キーとテーブル作成の留意点 : アンケート管理ソフト



前回に引き続き、テーブル関係のお話を行いましょう。

死んだように眠っているAccessテーブル、エクセルのセルとは大分趣が違いますね。表計算ソフトと同じような構成は避けましよう。アクセスはテーブル同士を組み合わせる(リレーションによるクエリ処理等)のが基本ですから…。追々、ご理解されることと思いますので、あせらないで前に進みましょう。

残っているテーブル(笑い)、について話を進めます。「tbl_age」テーブルについては、下記のようなフィールド構成にしています。

 主キー

主キーフィールドである「No.」については、敢えて、"オートナンバー型にしていません"とことわっています。そして"主キー"という言葉が出てきていますね。これをまず説明します。

  1. 主キーは、フィールドに設定します。
  2. レコードを検索したりテーブル間の結合を行うために使われます。
  3. 設定できる条件は、各主キーフィールドにデータがあり、重複していないことです。
  4. 複数の設定も可能です。
  5. この設定を行わないと、リレーションシップを構築することはできません。
  6. 主キーの設定されていないテーブルでは、並べ替えや検索が遅くなります。

前回の「tbl_question」テーブルの「ID」フィールドにオートナンバー型の設定を行いましたが、これは主キーを設定するのにベストだからです。よくサンプルファイルに無駄のような連番が並んでいますが、大抵このような裏の意味があるんですよ。

少し戻って、"オートナンバー型にしていません"についてお話します。詳しく話すと長くなるんですが、わりと大事なのでちょっと深くお話します。

例えば、上記テーブル(tbl_age)のフィールド構成で、「No.」をオートナンバー型にすれば、「tbl_question」テーブルの「年齢」フィールドとリレーションの関係を構築できません。

理由は、リレーションを結べるフィールド間には、同じデータ型であるこという条件があるんです。

「tbl_question」テーブルの「年齢」フィールドはディスク容量を抑える意味からも、データ型を"バイト型(1バイト)"にしています。

オートナンバー型は、"長整数型(8バイト)"なので一致しません。
(注意:リレーションシップの設定時に"参照整合性"を求めなければ可能ですが、非常に危険です。)

但し、前述した"主キー"は設定しています。同じ数値を使うことはありえませんので…。

  • なお、リレーションの「1対多」の関係にある"1"側のテーブル(今回では tbl_age等)にはオートナンバー型を設定しません ので注意して下さい。

 テーブルに関する注意点

なお、システム構成には、いろいろと注意点があります。その中でテーブルに関することについて以下に挙げておきます。

  1. ファイル容量が気になる場合(大量のデータを格納する等)はフィールドのデータ型を最小限に設定する。
  2. 各テーブル間で重複するデータを持たないようにテーブル及びフィールド構成を行う。
  3. 1つのテーブルに多数のフィールドを設定しないように注意する。
  4. 数値型フィールドの場合、初期設定で既定値が 0 になっています。フォーム入力時に設定した方が管理がし易いので、テーブルフィールドの既定値は空白にして下さい。

最後のテーブルとして、質問項目データを持つ下記のようなテーブル「tbl_question_1」〜「tbl_question_5」を作成します。これらテーブル光来は、上記の「tbl_age」テーブルと同じです。

このように、テーブルの構成にはちょっとややっこしいものがありますが、最初からマスターし作成できるものではありません。気楽に進んで下さい。

下記にAccessヘルプから転写したテーブルのデータ型関する項目別解説を載せていますので参考にして下さい。

関連ページ

次回は「リレーションの設定」についてお話する予定です。
 

ページの先頭へ 前ページへ戻る

 


主キーとテーブル作成の留意点 : アンケート管理ソフト


 

-Microsoft Access Club-