Accessで多対多のリレーションを作ってみた¶
Access 2016で、中間テーブルを使って多対多のリレーションを作ってみました。
試した環境は下記です。
Access 2016
目次
多対多のリレーションとは¶
分かり易い例はブログのタグです。1つの記事に対し複数のタグが設定され、1つのタグに対して複数の記事が紐付きます。
例えばこんな表を作ったりしないでしょうか。
Excelに対してはWindowsとAndroidが、Windowsに対してはExcelやWordなどが紐付いています。多対多のリレーションですね。
データベースのテーブルはどうする?¶
リレーショナルデータベースのリレーションは多対多は表現できなくて、1対多にしなければなりません。(Accessは1つのフィールドに複数のデータを登録できますが、内部的には中間テーブルを作ってます。)
そこで、まず表をコンピュータで扱いやすい形にします。
そして、この表をitemのリストとenvironmentのリストと、itemの各項目とenvironmentの各項目の関係を表すリスト(中間テーブル)に分解します。
まず、itemのリスト(table_1)です。
そして、environmentのリスト(table_3)です。
さらに、中間テーブル(relation_table)です。
次にクエリを作ります。table_1とtable_3のIDをrelation_tableのitem_IDとenvironment_IDにドロップして、これらの関係を作ります。
そして、table_1のitemとtable_3のenvironmentをそれぞれドラッグして、下の表にドロップします。
その後にそのクエリを表示すると、このような表になります。
公開日