7 返信 最新の回答 日時: Mar 13, 2014 4:48 AM ユーザー:sago350@未来Switch

    ローン計算みたいなリレーションモデルの設計について

    Nu-nrg

      タイトル

      ローン計算みたいなリレーションモデルの設計について

      フォーラムに投稿

           住宅ローン計算を例に考えます。
           1)借入金、借入年数、年利を入力すると、
           2)1〜35年の返済額、支払金利、支払元金、元金残高などが自動計算される

           ような設計は、
           1)を親テーブル、2)を明細テーブルのようなリレーションを利用したほうが良いのか、
           それともリレーションを遣わず、繰り返しフィールドを35個作ったほうが良いのでしょうか。

           1〜35年の間で、5年だったり、10年だったりで、期間が短かったり長かったりで対応したい。
           40年という期間を延ばさなければならなかった場合も考えておきたい。
           シュミレーション同士を比較しやすいようにしたい。

           明細テーブルを利用すると、各フィールドの計算し直しなんかをスクリプトでレコード選択で走らせるのが複雑かな、しかしCSVなんかで吐いたり入れたりが楽なのかな?
           繰り返しだと、繰り返しの番号をかなり多く計算式で定義しなければならないので複雑かな?
           複数繰り返しフィールドを纏めてのCSVインポート・エクスポートはどうやってやるのだろう。

           一長一短あるのかもしれませんが、定石含めアドバイスいただけるとありがたいです。
           よろしくお願いいたします。

           環境:Filemaker pro Ad 12

        • 1. Re: ローン計算みたいなリレーションモデルの設計について
          sago350@未来Switch

               私なら、100年分(100レコード)用意しておいて、必要な分だけを使うパターンですかねぇ。
               ただ、どんな画面にするかによっても変わってきますので、繰り返しを使うパターンも十分にあると思います。

          • 2. Re: ローン計算みたいなリレーションモデルの設計について
            Nu-nrg
                 

                      どんな画面にするかによっても変わってきますので、繰り返しを使うパターンも十分にあると思います。

                 なるほど、やはりファイルメーカーはレイアウトから考えるのが定石でしょうか。。。
                 繰り返しフィールドの場合は、1〜10年、11年から20年と、表示出来ますから便利ですね。

                 関連テーブルの場合は、ポータルですと扱いやすいのですが、リストやレポートだと表示がなかなか難しいところはありますね。

                 

                      私なら、100年分(100レコード)用意しておいて、必要な分だけを使うパターンですかねぇ。

                 ん?フィールド100個ではなく、レコード100個ですから、これは関連レコードということでしょうか?

            • 3. Re: ローン計算みたいなリレーションモデルの設計について
              Nu-nrg

                   100年分ということであれば全て対応出来ますね。
                   ただ、返済回数で月単位なので、12ヶ月×100年ですから、1200件の関連レコードか、繰り返しが必要ですね。

                   通常35年くらいですが、仮に50年をMaxとしたとしても、
                   フィールドの繰り返し数600回というのは処理的にどうなのでしょうか。

              • 4. Re: ローン計算みたいなリレーションモデルの設計について
                sago350@未来Switch

                     1レコードに12個の繰り返しフィールドを置いて、1年1レコードというパターンはどうでしょうか。
                     FileMakerで月間カレンダー作る時に、7リレーションを作って1週間表示出来るようにして、5レコードをリスト表示で見せて1ヶ月とする時が多いので。

                     サンプル作りました。

                • 5. Re: ローン計算みたいなリレーションモデルの設計について
                  sago350@未来Switch

                       サンプルファイル付け忘れてました。

                  サンプルファイル

                  • 6. Re: ローン計算みたいなリレーションモデルの設計について
                    Nu-nrg

                         sago35さん

                         お返事遅くなりすみません。サンプルファイルありがとうございました。

                         1ファイル1案件方式でしょうか。
                         この場合2案件同士で比較が出来ないので、この方法は利用しにくいです。


                         リレーションモデルの場合は、

                         ローン案件テーブル
                         の借入期間が35年の場合、
                         明細テーブルの関連レコード数を420個(35年×12ヶ月)自動作成し、返済額、支払金利、支払元金、元金残高を自動計算する。
                         借入期間を20に変更した場合、
                         既に作成済みの関連レコードをリセットし、240個より余ったレコードを削除した上で、返済額、支払金利、支払元金、元金残高を自動計算する。
                         つまり、明細テーブルの数を借入期間フィールドの値でフレキシブルに変更し、再計算しなおす。

                         繰り返しモデルの場合は、
                         1年目フィールド(繰り返し数12)を100年分100個用意しておいて、
                         借入期間35年の場合、1〜35年分の各フィールド内の繰り返しを全自動計算して、36年以降のフィールドはNullにする。
                         借入期間を25年に変更すると、1〜25年分のフィールドを再計算し直し、26年目以降をNullにする。


                         保存したデータ同士を2つ比較出来るようにする。
                         実際には住宅ローンではなく、凝った計算を行いますが、こんなイメージです。

                    • 7. Re: ローン計算みたいなリレーションモデルの設計について
                      sago350@未来Switch

                           もう一つ作って、縦なり横なりに並べるのはどうですかね。