みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考にさせていただいています。
Ver.19.5.2.201
Mac版で利用しています
1つご指南下さい。
現在、テーブルAに100程度の点数フィールド群があり、別テーブル2の規準に照らして、テーブルB上の評価フィールド群に評価(ABCDE)のテキストを返したいと思っています。
テーブルB
点数フィールド「5」 評価フィールド「A」
点数フィールド「4」 評価フィールド「B」
点数フィールド「3」 評価フィールド「C」
点数フィールド「2」 評価フィールド「D」
点数フィールド「1」 評価フィールド「E」
テーブルA
「点数フィールド1」が「4」の時
「評価フィールド1」に「B」を返す、 という、複数のフィールドを同じ規準で判断する、というイメージです。
テーブル2の規準が今後変更される可能性があり、フィールド数が多いこともあって、テーブル1上の評価フィールドは計算式ではなく、リレーションでA~Eのテキストを返したいと思います。
「同じ規準で判断させる」といったあたりがよく理解できず、今現在はテーブルAの「点数フィールド1」についてテーブルBの「点数フィールド」をリレーションでつなぎ、これをテーブルAの点数フィールドの数だけ(100程度)、テーブルBをコピーしてそれぞれとリレーションでつないでいます。テーブルAに対して、テーブルBが100個つながっている状態です。
これで不具合は無さそうですが、あまりスマートとは言えない気がしています。このような場合、他に方法はないでしょうか?過去のログを見てみましたが、当方の知識不足か、探せませんでした。
基本的なことかもしれませんが、ご教授いただければ幸いです。
苦労して作られましたね。
私が作るなら、
評価項目、評価フィールド、評価点 設定日 のマスターテーブルを作ります。
1検査ごとのテーブルと別に、点数を入れるテーブルを作り、評価日、評価項目と点数のフィールドを作ります。
評価日、評価項目と点数 で、上のマスターテーブルとリレーションします。
この構造にすると、リレーションは2個だけです。
Last edited by Shin (2022-07-19 11:50:49)
Offline
shin様、
ごめんなさい、あまり理解ができていません。
設定日や評価日はなぜ必要なのですか?
構造は簡単になるのですが、リレーションの十分な理解が必要になります。今回は、100個の多量のデータの評価になるので、構造をかえた方が楽になるはずです。
> 設定日や評価日はなぜ必要なのですか?
評価基準が変更された場合、書き換えてしまうと、それ以前のデータの評価基準が失われてしまいます。ですから、履歴として持たせておく必要があります。ですから、その設定日は必要です。
また、評価を行った日は、複数あるうちのどの評価基準を参照するかを決めるためには必須ですね。
実用レベルの骨組みのサンプルです。項目ごとに評価基準が異なる場合にも対応しています。
基準の設定日と実施日の関係を見てみてください。
https://www.dropbox.com/s/e1mpkkyvkjpnu … 2.zip?dl=0
Last edited by Shin (2022-07-19 15:53:39)
Offline
テーブルAに100程度の点数(と評価)フィールド群があり、テーブルBの規準に照らしてAの評価フィールド群に評価(ABCDE)のテキストを返す
じゃないんですか?
それなら参照元データが100フィールドあるのだから、どうやってもリレーションが100個になります。
計算で出せばリレーションは不要だけど、テーブルBの基準を変更した際には100フィールド全部再計算が必要になります。
(計算式でダミーの1フィールドを参照するように作っておけば、その1フィールドを変更するだけで再計算はできるか...)
一般的には、同じ属性のフィールドは複数作らないもんですが(この場合「点数と評価」はそれ以外の書かれてないテーブルAのフィールドとは別テーブルにする)
常にそれがいいとも限らないので...
テーブルA
テーブルB
テーブル1
テーブル2
分かりません。。
Offline
shin様、
サンプルデータありがとうございます。なんとなく理解はできたのですが、私が自分で構築するとなると、ハードルは高そうに感じ、怖じ気づきました・・・
himadanee様、
ご助言ありがとうございます。やはりリレーションはそのフィールドの数だけ必要のようですね。これについては地道にいくしか無さそうですね。でもダミーのフィールド、なるほど、と思いました。参考にさせていただきます。
お二人のおかげで勉強になりました。ありがとうございました。
チポ様
すみません、途中で混乱しました。
テーブルはAとB、フィールドが1~ でした。
全ての回答に対する評価が同じで無い、回答は1-10とかでその中のレベルで数段階に評価する、全ての受験者が全問を受けるわけでは無い、という最大拡張できる仕様で作っていますので、少々リレーションが複雑になっています。
それらの条件はどうなのですか。
例えば、どの設問でも同じ回答ならば評価は同じ、回答を評価は1対1、全員が全問を回答、という条件でしたら、ぐっと簡単になって、リレーションも日付の大小のみになります。
ただ、この条件でしたら、評価を計算式にして、計算式をグローバウフィールドにテキストで設定しておきそれを Evaluate() で評価する、という方法や、回答を繰り返しフィールドへ詰め込んでそれの評価を繰り返しの計算式フィールドで行う、という方法で、もっとシンプルになります。
ただ、この手のアンケートで、数十問設問を見ていると高得点選択肢が見えてきます。それの回答の傾向が見えてくると、高得点をねらう回答になってしまいますよ。(1の回答でA評価だと、1ばかり回答されてしまいます)
Offline
> 別テーブル2の規準に照らして
別フィールド2ということですね。
この値によって、
点数と評価の組み合わせが変わる
ということですか?
とすると、
テーブルBにその基準を持たせるとかしないと、
点数だけで評価は出せないでしょう。
Offline
ああ、読み違えていました。
> テーブルB上の評価フィールド群に評価(ABCDE)のテキストを返したい
これは正しいのでしょうか?
himadaneeさん指摘の
> テーブルAに100程度の点数(と評価)フィールド群があり、
> テーブルBの規準に照らしてAの評価フィールド群に評価(ABCDE)のテキストを返す
こちらが正しいのでしょうか?
Offline
Shin様
全ての回答に同じ評価、で判断したいと思っています。
あるテストについての結果(結果は1~5のみ)の評価をA~Eで返したいと思っています。
テスト結果ですので、全員何かしらの結果が出ますし、アンケートのように「狙った回答」はできかねるかと思います。
まさにご指摘の通り「どの設問でも同じ回答ならば評価は同じ、回答を評価は1対1、全員が全問を回答、という条件」になるかと思います。
なるほど、いろんなパターンを考えて応用できるサンプルを作って頂いていたのですね。ありがとうございます。
チポ様
すみません、こちらの言葉遣いが混乱を招いていました。
himadanee様が指摘して下さった、
> テーブルAに100程度の点数(と評価)フィールド群があり、
> テーブルBの規準に照らしてAの評価フィールド群に評価(ABCDE)のテキストを返す
がやりたいことになります。
ごく基本的な動きのサンプルです。
https://www.dropbox.com/s/bb471knba3x6u … 2.zip?dl=0
点数マスターを別に用意する方法と、1テーブルのみで計算フィールドで処理する方法を実装しています。
Last edited by Shin (2022-07-21 06:41:44)
Offline
Shin様
またしてもありがとうございます。シンプルなサンプルになりこれなら挑戦できるかなと思われます。
いつもありがとうございます。
実装の作業が終わったら、上のサンプルを見比べてください。リレーションのいい勉強になりますよ。
Offline
Shin様
はい、勉強させていただきます。ありがとうございます。
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 597.23 KiB (Peak: 614.13 KiB) ]