みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ご教示いただいたノウハウをまとめます。
「多対多対多の関連の結合表」
ファイルメーカーで多対多対多を以下のように扱う。
(1)多対多対多の真ん中のテーブルを起点にして、2つの多対多関連に分割する。
(2)レイアウトで表示する場合、2つの多対多関連を2つのポータルにそれぞれ割り当てる。
(3)多対多対多をユニークに識別するレコードを新テーブル(多対多対多の関連を示す3つの外部キーを持つ表)に挿入する。
(4)新テーブルを起点にすることで、フォーム1枚に多対多対多の関連の情報を表示できる。
仮想テーブルも是非チャレンジしたいと思います。
himadaneeさん、Shinさん、ご教示くださりありがとうございます!
Shinさん>
「ポータルの中にポータル風」のご提供ありがとうございます。
しくみを勉強させていただきます。
取り急ぎお返事まで。
Shinさん>
生徒を起点にしてサークル情報とクラス情報を相互に関連づけるテーブルを作成しました。
また、サークル情報とクラス情報を直接関連づけるために、生徒を起点としたリレーションとフォームのレイアウトを作りました。
添付しますので、リレーションシップと生徒のレイアウトがイメージにあっているか、ご確認お願いできますでしょうか。
(生徒IDが1の佐藤さんのデーターだけ入力しております。)
http://pupld.net/28/231227/vpime2lemb/index.cgi
丁寧に教えてくださり、ありがとうございます。
himadaneeさん>
FileMaker流の考え方は、以下の2つがあるということですね。
(1)3つの外部キーをフィールドに持つテーブルにレコードを挿入
(2)「仮想テーブル」(空のレコードを事前作成必要)
(1)、(2)ともにチャレンジしてみたいと思います。
Shinさん>
(1)参加登録IDについて
参加登録IDは、サークル、クラス間で特別な意味はありません。
参加登録テーブルの主キーであるという以上の意味はありません。
クラリスのヘルプページに以下のように書いてあったので従いました。
>2 「参加登録」テーブルに「参加登録 ID」という名前の主キーフィールドを作成します。 このステップは結合するテーブルを扱うために必須の作業ではありませんが、すべてのテーブルに主キーを持たせることは、リレーショナルデータベースとして良い習慣です。
申し訳ございません。リンクをはり間違えていましたので再度はります。
https://support.claris.com/s/article/Fi … anguage=ja
(2)普通のリレーション構造
「サークルに人を所属させ、そこからクラスに派生」について、イメージできませんでした。
サークルと生徒を多対多関連、生徒とクラスを多対多関連にするということでしょうか。
仮にそうだとすると、添付ファイルのリレーションシップと同じになるのではないでしょうか。
詳しく教えていただけると助かります。
himadaneeさん>
アドバイスに従って、(1)から進めてみます。
himadaneeさん、Shinさん、お力添えありがとうございます!
はじめまして、hatakebitoと申します。
こちらのFM-AID.COMでFileMakerの勉強をさせていただいております。
当方、FileMaker Pro 20 (バージョン: 20.3.1.31 (10-13-2023))、Windows 10環境です。
多対多対多の関連の結合表を(ポータルを使わず)フォームに表示したいのですが、
どのように操作すればよいでしょうか。FileMaker流の考え方を教えてください。
実テーブルのレコードに1対1で対応するレコードが存在しない場合でも、Accessで
あればクエリを使って多対多対多の結合表を作れますが、FileMakerの
リレーションシップを使うと、実テーブルに存在しないレコードをフォームに
表示できないように見えます。
多対多対多の結合表を使いたい場合、FileMakerでは3つの外部キーをフィールド
に持つレコードをテーブルに挿入する等の操作をしなければ、結合することが
できないでしょうか。
それとも、以上は私の勘違いでFileMakerらしい別の解決方法があるでしょうか。
動機は、多対多対多の結合表のレコードごとに別のテーブルに関連する
レコードを挿入をしたいためです。ポータルの入れ子ができないようなので、
結合表の一部をポータルにするのではなく、結合表のレコードごとにポータルを
使わないフォームを表示したいと考えています。
最小の再現環境を作るため、以下の多対多の例を拡張して、多対多対多の
例を作りました。
多対多のリレーションシップ | Claris Pro および FileMaker Pro ヘルプ
https://help.claris.com/ja/pro-help/con … ships.html
FileMakerのファイル及びMS-Accessのファイルを同梱しています。
3テーブル結合.pngの形式の表をフォームで1レコードずつ表示したい
ということと、対応する新たな関連レコードをさらに別のテーブルに
挿入したいということがやりたいことです。
http://pupld.net/28/231226/g1i6k135bv/index.cgi
添付ファイル一覧
3テーブル結合.png 多対多対多の結合表をAccessで実現した図
3テーブル結合SQL.txt 多対多対多を結合するSQL文
expand-records.accdb MS-Accessの例
expand-records.fmp12 FileMakerの例
お力添えいただけますと幸いです。
Pages: 1
[ Generated in 0.010 seconds, 6 queries executed - Memory usage: 581.78 KiB (Peak: 587.06 KiB) ]