2016年3月31日木曜日

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

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

トレーナーが担当する種目が 1つだけで、1つの種目を担当するトレーナーが複数いる場合、適切と思われるトランザクション設計を選択してください。



※:トレーナー : Trainer 、種目 : Discipline

解答は??



【解答】1.2

【解説】
それぞれのトランザクション定義を元にテーブル(データモデル)に展開して考えてみます。

1.1の場合


1.2の場合


1.3の場合



1.2.はDisciplineが独立したトランザクションで且つ主キーであるDisciplineIdがTrainerトランザクション上に存在している(外部キー項目)ため、TrainerとDisciplineの関係はn対1になり、要件を満たします。

1.1と1.3はテーブル構造が似ていますが、Disciplineテーブルの主キーとしてTrainerIdが含まれているか否かが大きな違いとなります。

1.1の場合はTrainerIdが外部キーで且つ主キーに含まれますので、Trainerのレコードが先に存在しないとDisciplineのレコードは存在する事ができません(一般的にはヘッダー・明細の伝票モデル)。

1.3の場合、TrainerIdは外部キーのみとなりますので、Trainerのレコードが存在していなくてもDisciplineのレコードが存在する事は可能です(TrainerId外部キーのNULL許容をYESに設定した場合)。




0 件のコメント:

コメントを投稿