初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 Re: 初心者のFileMaker pro Q&A » 多対多対多の関連の結合表 » 2023-12-28 12:06:09

ご教示いただいたノウハウをまとめます。

「多対多対多の関連の結合表」

ファイルメーカーで多対多対多を以下のように扱う。

(1)多対多対多の真ん中のテーブルを起点にして、2つの多対多関連に分割する。
(2)レイアウトで表示する場合、2つの多対多関連を2つのポータルにそれぞれ割り当てる。
(3)多対多対多をユニークに識別するレコードを新テーブル(多対多対多の関連を示す3つの外部キーを持つ表)に挿入する。
(4)新テーブルを起点にすることで、フォーム1枚に多対多対多の関連の情報を表示できる。

仮想テーブルも是非チャレンジしたいと思います。

himadaneeさん、Shinさん、ご教示くださりありがとうございます!

#2 Re: 初心者のFileMaker pro Q&A » 多対多対多の関連の結合表 » 2023-12-28 10:20:29

Shinさん>

「ポータルの中にポータル風」のご提供ありがとうございます。
しくみを勉強させていただきます。
取り急ぎお返事まで。

#3 Re: 初心者のFileMaker pro Q&A » 多対多対多の関連の結合表 » 2023-12-27 15:32:19

Shinさん>

生徒を起点にしてサークル情報とクラス情報を相互に関連づけるテーブルを作成しました。
また、サークル情報とクラス情報を直接関連づけるために、生徒を起点としたリレーションとフォームのレイアウトを作りました。
添付しますので、リレーションシップと生徒のレイアウトがイメージにあっているか、ご確認お願いできますでしょうか。
(生徒IDが1の佐藤さんのデーターだけ入力しております。)
http://pupld.net/28/231227/vpime2lemb/index.cgi

丁寧に教えてくださり、ありがとうございます。

#4 Re: 初心者のFileMaker pro Q&A » 多対多対多の関連の結合表 » 2023-12-27 11:29:55

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さん、お力添えありがとうございます!

#5 初心者のFileMaker pro Q&A » 多対多対多の関連の結合表 » 2023-12-26 16:11:45

hatakebito
Replies: 8

はじめまして、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の例

お力添えいただけますと幸いです。

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.010 seconds, 6 queries executed - Memory usage: 581.78 KiB (Peak: 587.06 KiB) ]