2 返信 最新の回答 日時: Nov 26, 2009 8:56 PM ユーザー:sasada

    リレーションシップの設定方法について

    sasada

      タイトル

      リレーションシップの設定方法について

      フォーラムに投稿

       FileMakerを勉強し始めてまだ1ヶ月の超初心者です。
       15年前、MS-DOS時代に作成したdBASEによるシステムをFileMakerに置き換えようと試行錯誤しています。

       なお、蓄積されたデータが既に数千件~1万件ほどありますので、テーブル(データベース)の構造はできるだけ変えたくありません。

       次のような2つのテーブルがあるとします。

      テーブルA
       受付番号
       年月日
       買主コード
       売主コード
       紹介者コード

      テーブルB
       顧客コード
       氏名
       住所

       ここで、テーブルAの買主コード・売主コード・紹介者コード及びテーブルBの顧客コードは共通のコードとしています。

       そこで、テーブルBの顧客コードとテーブルAの買主コード・売主コード・紹介者コードに同時にリレーションを設定したいのです。(古い話で恐縮ですが、dBASEでは可能でした。)

      目的
       テーブルBの氏名や住所を修正すると、テーブルAに基づくレイアウトで、買主・売主・紹介者の氏名や住所が修正されて表示される。

      質問1
       テーブルBの1つのフィールドとテーブルAの複数のフィールドにリレーションシップを同時に設定する方法があれば、教えてください。

      質問2
       質問1についてそのままでは不可能ということであれば、他に、目的を達成するために可能な方法を教えてください。

        • 1. Re: リレーションシップの設定方法について
          yasuhiro
            

          1. リレーションシップグラフでテーブルBをソーステーブルとするテーブルオカレンスを3つ作って、仮に「買主」「売主」「紹介者」という名前にします。

           

          2. テーブルAの3つの外部キーとテーブルBの3つのオカレンスの主キーをそれぞれリレーションする。

           つまり4つのオカレンスで構成されたグループを構成します。 

           

          3. このテーブルAのオカレンスに基づくレイアウトに参照フィールド「買主::氏名」「売主::氏名」「紹介者::氏名」等を配置すればパンクチュアルに参照内容の変更が反映されます。

           

          ファイルメーカーのリレーションシップグラフは主体がテーブルではなくリレーションですので同じテーブルは何度でも出現できます。 

          これをテーブルオカレンスとかインスタンスとか言うようです。 

          • 2. Re: リレーションシップの設定方法について
            sasada
              
            迅速かつ的確な御教示ありがとうございました。おかげさまで解決しました。

            FileMakerのヘルプでは「テーブルオカレンス」ではなく、「テーブルの別の名前」と訳されているようですね。

            これからもちょくちょく質問させていただくと思います。今後ともよろしくお願いいたします。