みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
リレーションを増やすかの判断について教えて頂けないでしょうか?
テーブル
月報
タイムカード
スタッフマスタ
があったとして月報にて月の出勤人数を出したいとき
月報→タイムカード→スタッフマスタ
と繋げれば
count(スタッフマスタId)
で出ると思いますがスタッフマスタを繋げなくても
ValueCount ( UniqueValues(List(タイムカード::スタッフId) ; 2))
等で代用可能かと思います。
単純な例ですが現在簡単な数値を出すたびにTOを増やしていっていますがどんどん増加していっています。
毎回増やすべきか悩むのですが何か明確な基準のようなものはありますでしょうか?
セオリーのようなものがあれば教えて頂きたいです。
宜しくお願い致します。
FileMaker17
Offline
どのようなリレーションのTOを増やしているのですか。
そのリレーション元のキーの値を変更して行けば、1TOで対応できると思いますが
Offline
抽象的な照合キーフィールドで汎用統一リレーションを組み、
抽象的照合キーフィールドの値を変化させて、
その汎用リレーションから意図する個別結果を動的に得るよう
に設計します。
Offline
Shin様、Hiro様、いつも有り難うございます。
恐らく月報側の照合フィールドはグローバルフィールドなどにして動的に、という意味だと思うのですが
月報側に
出勤人数
社員出勤人数
バイト出勤人数
と同時で出したい場合年月はグローバルフィールドとして月報の先に1つのタイムカードTO、そしてその先に2つのスタッフマスタTOを繋げなければと思っていました。
月報とタイムカードは年月のみ、とタイムカードとスタッフマスタは社員バイトフラグ、で繋げるのかなと思ってます。
上記方法はあまり一般的ではないでしょうか?
また良い方法がありましたらご教授お願い致します。
宜しくお願い致します。
Offline
月報をどのような腰式でだしているかによって、対応はかわるでしょうね。
単に、各日の出社数、月の出社数をまとめているのでしたら、タイムカードのテーブルで集計してしまうのが簡単です。
それ以外のデータを含めてまとめるのでしたら、月報テーブルに年月を設定したフィールドを作り、そこから詳細テーブル(タイムカードを含めて)へリレーションを張ります。レコードごとにその年月を変えて行けばいいでしょうね。
https://www.dropbox.com/s/0nwkb9ezfk2wa … 2.zip?dl=0
Last edited by Shin (2019-05-13 17:36:46)
Offline
Shin様、参考ファイルまで上げて頂き有り難うございます。
自分では考えつかない方法で算出されていて大変勉強になりました。
計算式かTO追加かはケースバイケース、という事ですが簡単な計算式で済むものは別として基本的にはTO追加で対応していこうと思います。
有り難うございました。
Offline
考え方次第でしょうが、将来のメンテナンスのことをよく考えて、理論を踏まえた設計を行いましょう。少なくとも、正規化は習得する必要があります。リレーションは、理論的に張るもので、必要だから適当に張って、というものではありません。
理論を誤解釈していると、将来必ず行き詰まります。
Offline
Shin様、ご教授有り難うございます。
大変本質的な部分で難しいと思いますが勉強していきたいと思います。
有り難うございます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 514.02 KiB (Peak: 518.92 KiB) ]