0
0

【OutSystems】Associate Reactive Developerサンプル問題の解説1~5

Posted at

概要
・社内資料としてまとめたものをリタッチ
・公式ドキュメントでは解答のみがあり、この記事ではなぜその選択になるのかを解説
・自分が取り組んだ時に、欲しかった解説をイメージして作成

問題と解説

問題1

image (1).png

答え:A

解説:多対多のリレーションを行うには、中間テーブル(3つ目のエンティティ)に関係を持ちたいエンティティのIdを持たせるのが効果的です。
image (2).png

B:Orderエンティティの主キーを利用した場合、Orderエンティティに複数のレコードが登録できない。

C、D:関係を持たせることは出来るが多対多を実現できない。

公式の解説
多対多のリレーション

問題2

image (3).png

答え:C

解説:エンティティ識別子=サロゲートキーの考えで良い
サロゲートキーの解説

A、B、D:可能なため、不正解
→データ型を変更できること、手動で指定できること、自動作成されるアトリビュートだが削除可能なことを、それぞれ覚えておきたい。

公式の解説
データベースエンティティ

問題3

image (4).png

答え:A

解説:集約関数を使用した場合、集約関数がレコードのアトリビュートになる。

考え方はSQLと同じで、集約した項目と元のアトリビュートの項目は同時に出力できない。

公式の解説
デモ: Aggregateで集約関数を作成する方法

問題4

image (5).png

答え:D

解説:
 Priorityがあり → [Order] Only With [Priority]
 Employeeが0人以上の → [Order] With or Without [Employee]

 With or Withoutは、SQLのLEFT JOIN、
 Only WithはINNER JOINの考え。

A:
 [Order] With or Without [Employee]は、LEFT JOINとなるため、
 OrderにEmployeeが紐づいていないOrderも取得する。
 「Employeeがある」とはならないため違う。

B:
 [Order] Only With [OrderStatus]は、INNER JOINとなるため、
 OrderにOrderStatusが紐づくレコードしか取得できない。
 「Statusもない」とはならないため違う。

C:Aと同様

ややこしいが、結合条件とN件以上の条件に切り分けて考えると解きやすい。

公式の解説
高度なAggregate

問題5

image (6).png

答え:B

解説:
 PriorityごとにOrderの数を取得したい。

 →Priority.IdでGroup化し、Order.Descriptionの数を数える(Orderのアトリビュートはどのアトリビュートでも良い)

A:OnlyWithでは、Priorityに対してOrderが0件のPriorityが取得できない

  Priority.Idではなく、Orderの数を数えたいため違う。

C:Priority.Idではなく、Orderの数を数えたいため違う。

D:Priority.Idではなく、Orderの数を数えたいため違う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0