足立区在住SEのブログ

足立区在住のSEが主にシステム開発について書いています。

OutSystemsのDBの主キー

OutSystemsのEntityの主キーは複合キーにできず、単一カラムを主キーにする必要があります。
また、主キーは数値型だと自動採番できるので、数値型が推奨されているようです。

これまでの経験上、複合キーを使うことが多かったのではじめはとまどいましたが
今のところ、複合キーを使えないことによる問題は起きていません。

例えば商品マスタでは、他システムでは商品コードと会社コードの複合キーになっており
OutSystemsのシステムでも、その組み合わせで論理的に一意になるのですが
物理的には単一の数値型の主キーと持ち、商品コードと会社コードにユニークキー制約をつけています。
SQLでの結合は商品コードと会社コードを使うことで特に問題なく使えています。

OutSystems上のEntityであれば、上のように単一の主キーを持たせることができますが
既存のテーブルを使うときは当然主キーを変えられません。
その場合は、OutSystems上では主キーがないテーブルとして扱われ
OutSystemsで用意されているDB更新用のメソッドが使えません。
代わりにAdvancedSQLで更新SQLをほぼベタで書くことになるので
これは生産性が落ちてしまうと思います。

OutSystemsはアプリケーションとDBが連動するのが基本の作りになっているようなので
既存DBを参照しての開発はあまり得意ではないように見えます。
新規DBを作るか、既存DBを使うかは、OutSystemsで開発をするかどうかの
大きな判断基準になると思います。