制限事項
現在のリレーショナル DAS のリリースには、以下の制限があります。
-
null をサポートしていません。SQL の NULL 型をサポートしていません。
データオブジェクトのプロパティに PHP の NULL を代入することは
できず、リレーショナル DAS はそれをデータベースに NULL としては
書き込みません。クエリの結果に null が見つかった場合、対応する
プロパティには何も設定されません。
-
SDO のリレーションシップのうち、2 つの形式にしか対応していません。
以下で説明するリレーショナル DAS のメタデータは、
「複数の値をとる包含関係」「単一の値をとる (包含関係ではない) 参照」
の 2 つの SDO リレーションシップにしか対応していません。
SDO では、値が単一であるか複数であるかと包含関係の有無は
それぞれ独立して指定可能です。つまり、SDO で定義されている
すべてのリレーションには対応していないということです。
これらのリレーションを使用できれば有用でしょうが、現在の実装では
管理することができないということです。
例えば、「単一の値をとる包含関係」は使用できません。
-
SDO のデータ型のすべてに対応しているわけではありません。
リレーショナル DAS では、SDO モデルのすべてのプリミティブ型
プロパティを文字列型として扱います。
SDO では integer、float、boolean そして日付や時刻などの
さまざまな型が定義されています。リレーショナル DAS
では、文字列だけでこれらのデータを十分に扱うことができます。
なぜなら PHP、PDO とデータベースの間で、
データベースに保存する際に適切な型変換を行ってくれるからです。
他の DAS との間でデータグラフのやりとりをする際に、
これが何がしかの問題を起こすことがあります。
-
ひとつのテーブルに対して複数の外部キーを定義することはできません。
メタデータでは、テーブルごとにひとつの外部キーしか指定できません。
この外部キーは、サポートしている 2 つの SDO リレーションシップのうちの
どちらかひとつに関連付けられます。この制限のもとでは
表すことのできない状況があるのは明らかです。例えば、
ひとつのテーブルから他のテーブルに対して、(包含関係でない)
参照をふたつ以上を設定することができません。