見出し画像

OutSystems でデータベースの基本を身につける!「join」と「主キー・外部キー」徹底解説

ぷっとです
事始め2本目です
今日は、データベースの基本を OutSystems 観点で書いていきたいと思います

Index

いずれも実際に開発をはじめてみて「これを知らないと行き詰まる」と感じた実感ベースでまとめていきます

OutSystems におけるDB理解のポイント

データベース(以下 DB)は奥深いですが、OutSystems で開発する上で理解しておきたいポイントは3つです

  • テーブルの join

  • 主キー、外部キー

テーブルの join

テーブルの join には下記の種類があります

  • inner join(内部結合)

  • left outer join(左外部結合)

  • right outer join(右外部結合)

  • full outer join(完全外部結合)

  • cross join (クロス結合)

ここではよく使う inner / left outer / full outer の3つを押さえておきます
join とは、キーとなるカラムをベースに2つのテーブルを結合することです
その結合の方法がいくつもあり、例に示すような違いがあります

OutSystems における join

この join は ODC 上では「Aggregate」として表現されます
「Aggregate」は Interface(画面実装部分)や Action(ロジック実装部分)から呼び出すことができます

Interface で Aggregate を定義するケース
画面上で Aggregate の結果からデータを表示できる

主キー、外部キー

この join を実現するには、結合するためのキーが必要です
OutSystems ではこの2つのキーがポイントです

  • 主キー

    • レコードを一意に識別するためのキー(列)

    • そのためユニークかつ非NULLである必要がある

  • 外部キー

    • 関連する別のテーブルと紐づけるためのキー(列)

    • 関連する別テーブルの主キーに対応する必要がある

    • そのため非NULLである必要がある

先ほどの例でいくと、

  • 商品情報(ProductId、ProductName を持つテーブル)の主キーは ProductId

  • 商品仕入れ情報(ProductId、ProductNum を持つテーブル)は商品情報と連携するために ProductId を利用している = ProductId は外部キー

となります

OutSystems における主キー、外部キー

OutSystems では主キーを Identifier 型という特殊な型で定義します

カラムを右クリックしSet as Identifier で主キーにできる


外部キーを定義したいときは、その参照先の主キーの Identifier 型にする形で実現します

Project Member を EmployeeId で結合するため、外部キーに設定する


それに伴い、自動的に ER 図も作成されるという便利な仕様になっています

まとめ

  • テーブルの join は、2つのテーブルをキーをもとに結合するもの

    • 結合の方法により区別されており、inner join / left outer join / full outer join などがある

  • それらの join は OutSystems 上では「Aggregate」で表現できる

    • Aggregate は Interface や Action から呼ぶことができる

  • join を実現するには、結合するためのキーが必要

    • キーには、主キー、外部キーなどがある

  • OutSystems では主キーは Identifier 型という特殊な型を使用する

    • 外部キーは、別テーブルの Identifier 型にすることで実現できる

次回は、誰もが一度は通る「フォーム」の観点を記載していきたいと思います

この記事が気に入ったらサポートをしてみませんか?