問題[2] スポーツジムを対象とした GeneXus アプリケーションに関する問題です:
1人の参加者が複数の種目に参加することができ、1つの種目に複数の参加者がいる場合、適切と思われるトランザクション設計を選択してください。
※参加者 : Person
解答は??
【解説】
それぞれの選択肢をテーブルに展開すると以下になります。
2.1
![]() |
Personトランザクションが独立して存在しており、且つ、Desciplineトランザクション内で第二レベルにPersonIdを定義しているため、参加者は複数の種目に参加でき、且つ、種目も複数の参加者を持つことができる。 |
2.2
![]() |
Disciplineトランザクションが第二レベルを持たずにPersonIdを定義しているため、参加者は複数の種目に参加することは出来るが、種目は複数の参加者を持つことができない。 |
2.3
![]() |
2.2の逆パターン。種目は複数の参加者が持つことができるが、参加者は一つの種目しか参加することはできない。 |
「1人の参加者が複数の種目に参加することができ、1つの種目に複数の参加者がいる場合」とあるので、参加者と種目はn対nの関係となります。テーブルに展開されたデータモデルを比較すると、2.1が種目(Discipline)トランザクションの明細レベルがDisciplinePersonテーブルとして定義され、PersonテーブルとDisciplineテーブルがn対n関係が実現されています。
0 件のコメント:
コメントを投稿