みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
はじめまして、FileMakerを初めて1ヶ月足らずの初心者です。
FileMaker Pro 12 のMacOSXユーザーです。
以下の様な多対多の関係を持つテーブル構成で、マスタ入力画面を作成したいと考えています。
-----------------
製品テーブル
ID
製品名
-----------------
-----------------
区分テーブル
ID
区分名
-----------------
-----------------
製品区分テーブル
製品ID
区分名ID
-----------------
リレーションは以下のとおりです。
製品テーブル.ID ---> 製品区分テーブル.製品ID
製品区分テーブル.区分名ID <-- 区分テーブル.ID
実現したい仕様としては
・1製品に対して、複数の区分名を関連付けたい。
・1製品に対して、同じ区分名は重複しない。
何か良い方法があればご教授下さい。
ご質問が
> ・1製品に対して、同じ区分名は重複しない
重複させない
でしたら。。
テキストフィールドを作り、入力値の自動化で
製品ID & 区分ID
としてこのフィールドをユニーク制限する。
一案です。
Offline
製品に対して、製品区分は一意ですね。製品テーブルの中に、繰り返しフィールドなどで区分を持たせてしまえば簡単かも。その入力は、チェックボックスで入力させれば、原則重複しません。
Offline
製品テーブルに全部入れずに3テーブルに分けるって、どんな利点があるのですか?
複雑になるだけのような。
Offline
ご回答を頂きありがとうございまうす。
情報が足らずに混乱を招いていたようで申し訳ございません。
実は、例にあげた 区分テーブル ですが、実は 区分テーブル1 区分テーブル2 区分テーブル3 区分テーブル4 とそれぞれあります。
-----------------
製品テーブル
ID
製品名
-----------------
----------------- -----------------
区分テーブル1 製品区分1テーブル
ID 製品ID
区分名 区分名ID
----------------- -----------------
----------------- -----------------
区分テーブル2 製品区分2テーブル
ID 製品ID
区分名 区分名ID
----------------- -----------------
----------------- -----------------
区分テーブル3 製品区分3テーブル
ID 製品ID
区分名 区分名ID
----------------- -----------------
----------------- -----------------
区分テーブル4 製品区分4テーブル
ID 製品ID
区分名 区分名ID
----------------- -----------------
リレーションは以下のとおりです。
製品テーブル.ID ---> 製品区分1テーブル.製品ID
製品区分1テーブル.区分名ID <-- 区分テーブル1.ID
製品テーブル.ID ---> 製品区分2テーブル.製品ID
製品区分2テーブル.区分名ID <-- 区分テーブル2.ID
製品テーブル.ID ---> 製品区分3テーブル.製品ID
製品区分3テーブル.区分名ID <-- 区分テーブル3.ID
製品テーブル.ID ---> 製品区分4テーブル.製品ID
製品区分4テーブル.区分名ID <-- 区分テーブル4.ID
区分テーブル1〜4 のレコード数は同じではない。
こういう構成になっています。
Offline
区分テーブルは値一覧にするのにテーブルがあっても普通でしょう。
製品区分は、書いてる通りにIDしか入れてないなら、Shinさん案の繰り返しフィールド(テーブルなし)の方がいいかも。
他にフィールドがあるなら、テーブルが必要になりますよね。集計値とか?
Offline
> 区分テーブル1 区分テーブル2 区分テーブル3 区分テーブル4
なぜそんな構造に。
一つにすべきものだと思うけど。。
Offline
製品マスタに9個のテーブルですか。
あとあと作った人でないと分からなくなりそう。
>FileMakerを初めて1ヶ月足らず
最初から複雑なものを作ろうと考えないでシンプルにして、不便と
思われる部分が出てきたら改良すればいいのでは。
Offline
データが見難くて申し訳ないです。
データの構造としてはこういう形になります。
製品によって、区分1〜4のデータは変わります
製品名 区分1 区分2 区分3 区分4
------------------------------------------------
製品A 区分1-A 区分2-B 区分3-A 区分4-A
区分1-B 区分2-C 区分3-C 区分4-B
区分2-D 区分4-C
区分4-D
製品に紐付いている区分の数が不定ですので、Shinさんがおっしゃる繰り返しフィールド(テーブルなし)は使えないと思っています。
Offline
繰り返しでなくテキストフィールド1個でチェックボックスにするというのもありえますが。
区分は必要なら1~4まであってもいいかもしれないけど、例が抽象的すぎて1つでいけない理由がわからない。
製品区分テーブルで制限するのは、最初のチポさんのでできますけど、やってみました?
その場合は、選択済みのものを自動的に除外する値一覧を作ったほうがいいかな。
Offline
繰り返しフィールドは、全繰り返しを埋めてしまう必要はありません。途中に空白があっても良いのですが。
区分を別テーブルに置くのは、DBの理論的にもおかしいですよ。
Offline
1つの製品に区分が複数だから別にするのが正式だけど、FMの場合に最善かどうかは別、という件では。
どうしてもその構造でやりたければ、各区分をポータルで入力すればいいでしょう。
1つの製品に区分が複数だから別にするのが正式だけど、FMの場合に最善かどうかは別、という件では。
どうしてもその構造でやりたければ、各区分をポータルで入力すればいいでしょう。
区分テーブル、という1個のテーブルを作るのが、理論的には正解ですね。
ただ。その後どうしたいか、によるでしょう。
Offline
1つの製品に区分が複数だから別にするのが正式だけど、FMの場合に最善かどうかは別、という件では。
どうしてもその構造でやりたければ、各区分をポータルで入力すればいいでしょう。
そうですね。製品に対して各区分をポータルで設定して、登録ボタンを押下したタイミングで、同じ区分の値が無いかチェックする方法で実装してみようと思います。
Offline
Pages: 1
[ Generated in 0.008 seconds, 12 queries executed - Memory usage: 549.68 KiB (Peak: 570.22 KiB) ]