制限事項

現在のリレーショナル 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 リレーションシップのうちの どちらかひとつに関連付けられます。この制限のもとでは 表すことのできない状況があるのは明らかです。例えば、 ひとつのテーブルから他のテーブルに対して、(包含関係でない) 参照をふたつ以上を設定することができません。