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

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

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

You are not logged in.

Announcement

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


#1 2021-06-26 09:21:21

1対多リレーションの逆引き

FMS17とFMP17でWindows環境、ServerはMACMini(10.14.6)の構成です。
製品マスターで使用する検査設備を複数登録しています。
製品マスターと検査設備マスターで1対多のリレーションをとっています。
製品マスターに使用検査設備1,使用検査設備2,使用検査設備3とフィールドを作った場合。リレーションシップの編集画面には、リレーションのANDしか追加編集できません。
やりたいことは、検査設備マスターから登録されている製品マスターを表示したいわけです。
製品マスターに作るフィールドを繰り返しに設定すればうまく期待する1対多のリレーションができるのですが、繰り返しフィールドの良し悪しがよくわかっていません。繰り返しフィールドではなにか不都合がでてくるようなきがしているのです。
よろしくお願いします。

Offline

#2 2021-06-26 09:58:30

Shin
Member

Re: 1対多リレーションの逆引き

考え方が逆です。
製品マスターに製品管理コードというユニークなフィールド(Get ( UUID )が理想ですが、シリアル番号でもいいです)を作り、検査設備マスターにも製品管理コードフィールドを作り、リレーションします。そこには、その設備機器に対応する製品管理コードを設定しておきます。
この構成で製品マスターから見ると、検査設備がぶら下がってみえます。これをポータルで表現しておきます。リレーションの設定で、リレーションを通して検査設備側の新規レコードの作成を許可しておくと、ポータルの中から検査設備レコードが作れるようになります。

もう少しリレーショナルデータベースの理論を学習してください。
https://www.claris.com/ja/resources/
の公式トレーニング教材なども役にたつと思います。

Last edited by Shin (2021-06-26 10:06:59)

Offline

#3 2021-06-26 10:24:04

himadanee
Guest

Re: 1対多リレーションの逆引き

Shinさんの回答は多分検査設備マスターの意味を誤解している...
1つの検査設備が複数の製品で使われるという状況ですよね。

両方マスターなので、

製品マスターに使用検査設備1,使用検査設備2,使用検査設備3とフィールドを作った場合

であれば、検査設備マスターの方をリレーショングラフで複製します。(テーブル定義の複製ではありません)

が、使用する検査設備は製品ごとに不定数でしょうから、このフィールド定義はよくありません。(必要なフィールドが足りなくなったり余ったりする)
別のテーブル「製品検査設備」みたいなのを作るのが本道です。検査設備を3つ使う製品であれば、このテーブルに3レコード作ります。
これをやると、別の面倒が生じる可能性もないではないけど...
フィールド3つ作るぐらいなら繰り返しの方がいいかもしれません。(おっしゃる通り、リレーションが1つで済む。)
しかし、どっちにしても検査設備から使用している製品の検索とか集計とかで不都合が発生する可能性があります。

#4 2021-06-26 11:33:58

Re: 1対多リレーションの逆引き

そうです。1つの検査設備は複数の製品で使われます。別テーブルに使用する検査設備を作るというのもちょっと考えてみます。
ただ、フィールドを繰り返しフィールドにすれば、ORで逆引きできるのですが、1つ1つのフィールドにあるものをORで逆引きできないのはどうしたことでしょう。
ようするに、製品マスターの使用検査設備2に入っている検査設備マスター側からリレーションがとれないのでポータルに表示できないのです。

Offline

#5 2021-06-26 12:20:51

Shin
Member

Re: 1対多リレーションの逆引き

あぁ、製品の検査を行う設備、ということでしたか。失礼しました。

やはり、製品ごとに、検査設備を必要数だけ別テーブルに登録するテーブルを作るのが、逆方向のリレーションには必要なのでは。検査設備から見ると、そのテーブルを通して複数の製品に紐づくのですが、それでいいのですよね。
集計は、その中間テーブルをもとにして行うことになるのかもしれません。

Offline

#6 2021-06-27 20:07:45

Re: 1対多リレーションの逆引き

製品マスターのファイルに検査設備の別テーブルを作りました。
検査設備のテーブルに図番と検査設備名のフィールドを作りました。
製品マスターの図番と検査設備の図番とでリレーションをはりました。
製品マスターにポータルで検査設備の図番と検査設備名を表示させました。
ここで、ポータルに検査設備名を入れたら、検査設備ファイルに新規追加されると思いましたが、
ポータルに入力ができません。
なにがまちがっているのでしょうか?

Offline

#7 2021-06-27 20:32:21

himadanee
Guest

Re: 1対多リレーションの逆引き

入力できないのは、リレーションのオプションで「レコードの作成を許可」にチェックを入れてない場合でしょう。

#8 2021-06-27 21:41:43

Re: 1対多リレーションの逆引き

ありがとうございます。できました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 566.34 KiB (Peak: 585.95 KiB) ]