GeneXusジュニアアナリスト資格模試「超解説」問題2

問題[2] スポーツジムを対象とした GeneXus アプリケーションに関する問題です:

1人の参加者が複数の種目に参加することができ、1つの種目に複数の参加者がいる場合、適切と思われるトランザクション設計を選択してください。


※参加者 : Person

解答は??

【解答】2.1

【解説】
それぞれの選択肢をテーブルに展開すると以下になります。

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関係が実現されています。




コメント

このブログの人気の投稿

データプロバイダーを使いこなそう - 応用編その4 スケジューラー 補足編

HTMLヘッダーにあれこれ直接追加したいとき

GeneXusにおけるWebアプリケーションセキュリティ対策 - OWASP 2010 Top10 Security Risks in GeneXus Applications