3.料理の栄養計算で学ぶリレーション2(1対多のリレーション)

3.料理の栄養計算で学ぶリレーション
  3.2 1対多のリレーションとポータル機能
  3.3 関連フィールドと関数:(各栄養素の)合計の計算


リレーショナル・データベース

KeyWord:ポータル(1対多のリレーション)

3.2 1対多のリレーションとポータル機能

 料理データベースに、その料理に使った、食材・量・およびその栄養素(食材データベースでリレーションを使って、計算したもの)
を全部並べ、栄養素の合計を表示させよう。以上の食材データベースと食品成分データベースのリレーションの場合、1対1の対応であるが、

1つの料理に対して、複数の食材(の栄養素)が来るので、1対多のリレーションである。

この場合、ポータル機能を使って、食材・量・およびその栄養素を表示させる。

i)リレーションの定義をする。

    ファイル参照:食材DB.fp7
    料理DB::料理No.=食材DB::料理No.
ii)レイアウトモードにする。
iii)ポータル範囲設定アイコンをクリックし、ドラッグで表示する範囲をえらぶ。

iv)「ポータル設定」ウインドウ

が出てくるので、i)で定義したリレーション名「食材DB」を確認後、書式を設定する。「垂直スクロールバーを表示」はしておきましょう。
v)下図のように「ポータルにフィールドを追加」ウインドウが現れるので、リレーションにより食材データベースのフィールドから選択できます。
表示したいフィールド(例:各栄養素)をクリックして選び、「OK」ボタンをクリックしましょう。

3.3 関連フィールドと関数:(各栄養素の)合計の計算

i)「ファイル」->「フィールドの定義」をクリックする。
フィールド名:合計栄養素名 フィールドタイプ:計算
  を選択すると、次のような「計算式の指定」ウインドウが出てくるので、
右側の「関数」の中から、SUM(フィールド...)をダブルクリックして選び、さらに、右のフィールドを選ぶ欄からは、リレーション名「食材DB」の合計したい(栄養素の)フィールド名ダブルクリックで選ぶ。
以上で、その料理の各材料別の栄養素およびその合計が表示出来る。
    料理データベースのレイアウトを確認すれば、いったん終了。