2 返信 最新の回答 日時: Nov 22, 2016 3:38 AM ユーザー:azshi

    集計フィールドにするか、集計用のテーブルを作るか

    azshi

      環境:mac10.11 fmp adv 15、fmGo 15、fmS 職員データベース、マスタ、日毎、月毎、年毎、のテーブルを関連付けて管理しています。 データの集計用のフィールドを作るときにアドバイスをいただきたいです。 集計フィールドを同じテーブルに作成すれば、検索でもポータルでも使用できて勝手が良いですが、レコード数が多い場合(例えば日毎テーブル)、テーブルのフィールド内容が変更になった場合再処理するのに時間がかかります。 関連テーブルに集計用の計算フィールドを作ってしまえば紐付けの仕方にしばられますが、集計用のテーブルを作成すれば、管理が明確になるんじゃないかと思います。 両方法に一長一短あると思いますが、それに関して何かアドバイスいただけたら幸いです。 よろしくお願いします。

        • 1. Re: 集計フィールドにするか、集計用のテーブルを作るか
          shin

          何を管理されているのでしょうか。

          集計レイアウトを使った集計は、他の DBMS に類の無い、FM 独自のもので、非常に強力な機能です。私は、ほとんどの集計でこの機能を利用します。ただ、かなり取っ付きにくい機能ですので、理解するには大きなハードルがあります。

          FM 以外では、他のテーブルからリレーションを張ったり、対象レコードを絞り込む様な操作をする事によって集計を行いますので、どうしても別テーブルへデータを持っていく事が多いでしょう。

          どちらの集計も1長1短あり、好みだと思います。年毎の中に月毎、日毎の集計を、という要求されると、テーブルでの集計ではかなり手間がかかりますが、集計レイアウトを使った物でしたら、ソートを変更するだけでOK、という作り方も出来ますね。

          テーブルからリレーションでの集計は、直感的に理解できるため、最近の流行でしょう。

          上の日毎テーブルでフィールドの変更をすると再処理に時間が、という所はわからないのですが、索引付きの計算フィールドの再計算と索引付けの速度の事だと思います。それは、構造によるもので、集計と関係ない部分でしょう。それとも、別テーブルに集計用のデータフィールドを作ってあり、そこへの反映の事でしょうか。それでしたら、そのようなテーブル設計が正しくない、ということでは。

          ファイル構造の管理についても、フィールドの命名を統一しておけば、管理は明確にりますよ。

          • 2. Re: 集計フィールドにするか、集計用のテーブルを作るか
            azshi

            >shinさん 解説とアドバイスありがとうございました。今後のデータベース構築に参考にさせていただきます。まだまだ初心者でいろいろ分からないことが多々ありますが、仕事場のデータベースなので息の長いものになるよう頑張ります。