1 返信 最新の回答 日時: May 16, 2010 3:08 AM ユーザー:shin

    リレーションのリレーション

    youkazu7777

      タイトル

      リレーションのリレーション

      フォーラムに投稿

      次のような事が可能かどうか教えて下さい.

       

      【商品マスタ】→授業を「商品」として管理し,IDと値段を持つテーブル

      ・商品ID

      ・商品名

      ・値段 

       

      【生徒テーブル】→生徒が選択している授業を「商品ID」フィールドにIDで入力

      ・生徒ID

      ・生徒氏名 

      ・商品ID[複数]

       

      【請求口座テーブル】→1保護者(家庭)につき請求用の口座が1つあると考える.兄弟の請求は一つにまとめる

      ・親ID

      ・親氏名 

      ・口座番号

       

      【親子関係テーブル】 →兄弟関係がある場合,二人目以降の授業料を割り引くために親子関係を利用して兄弟関係を把握する

      ・親ID

      ・生徒ID

       

      上記の4つのテーブル定義があります.

      リレーションは次のようにしてみました.

       

      【商品マスタ::商品ID】 ─【生徒テーブル::商品ID】

                  【生徒テーブル::生徒ID】─【親子関係テーブル::生徒ID】

                              ┌【親子関係テーブル::親ID 】 

                        【請求口座テーブル::親ID】

       

       

       

      このような構成が正しいのかは分かりませんが,このデーターベースがおこないことは,

      1.各請求口座に請求の内訳を書いた明細プリントを発行

      2.保護者(親)に対してプリントを発行し,その親の子供は一覧でプリントに表示されている.

      3.兄弟の授業料は割引きになる. (割引き率を入力したり,合計金額を計算するフィールどが必要だが,どのテーブルに持たせるべきか分からない)

       

       

      請求口座のレイアウトで,生徒(子)一覧をポータルで表示すると,生徒が選択している授業のIDは関連レコードとして表示できますが,

      その授業IDが更にリレーションを組んでいるわけなので,そのリレーションの先にある料金は取得することができない.

       

      リレーションのリレーションというようなテクニックがあるかということになると思いますが,,

      こういう場合は,ルックアップで生徒テーブル自体に値段をコピーしておくしかないですか? 

       

      また, 兄弟の料金の割引き率などはどのテーブルにフィールドを持たせればよいのでしょうか.

       

        • 1. Re: リレーションのリレーション
          shin
            

          【生徒テーブル】の・商品ID[複数] という部分が、複数レコード、という意味でしたら、このままのリレーション関係で、値段を関連レコードとして表示できるはずです。

          また、値引きの計算は、その考え方(条件)次第でしょうが、生徒テーブル内で兄弟数をみて判断させるのがいいでしょうが、親テーブルの中で値引き、と言う処理を行っても可能だと思います。