Accessで多対多のリレーションを作ってみた

Access 2016で、中間テーブルを使って多対多のリレーションを作ってみました。

試した環境は下記です。

  • Access 2016

目次

  1. 多対多のリレーションとは
  2. データベースのテーブルはどうする?

多対多のリレーションとは

分かり易い例はブログのタグです。1つの記事に対し複数のタグが設定され、1つのタグに対して複数の記事が紐付きます。

例えばこんな表を作ったりしないでしょうか。

image0

Excelに対してはWindowsとAndroidが、Windowsに対してはExcelやWordなどが紐付いています。多対多のリレーションですね。

データベースのテーブルはどうする?

リレーショナルデータベースのリレーションは多対多は表現できなくて、1対多にしなければなりません。(Accessは1つのフィールドに複数のデータを登録できますが、内部的には中間テーブルを作ってます。)

そこで、まず表をコンピュータで扱いやすい形にします。

image1

そして、この表をitemのリストとenvironmentのリストと、itemの各項目とenvironmentの各項目の関係を表すリスト(中間テーブル)に分解します。

まず、itemのリスト(table_1)です。

image2

そして、environmentのリスト(table_3)です。

image3

さらに、中間テーブル(relation_table)です。

image4

次にクエリを作ります。table_1とtable_3のIDをrelation_tableのitem_IDとenvironment_IDにドロップして、これらの関係を作ります。

そして、table_1のitemとtable_3のenvironmentをそれぞれドラッグして、下の表にドロップします。

image5

その後にそのクエリを表示すると、このような表になります。

image6

公開日