各AssetGroupオブジェクトに少なくとも1つのAssetオブジェクトが必要であると仮定します。 a)従来のSQL b)NHibernateデータ制約を実装して、最小数の子オブジェクトを実施する方法は?
削除操作の前に子要素の数を確認できますが、もっと宣言的な方法があります。
AssetGroupを作成する場合、まずAssetGroupを作成する前にAssetGroupを作成する必要がありますか?
各AssetGroupオブジェクトに少なくとも1つのAssetオブジェクトが必要であると仮定します。 a)従来のSQL b)NHibernateデータ制約を実装して、最小数の子オブジェクトを実施する方法は?
削除操作の前に子要素の数を確認できますが、もっと宣言的な方法があります。
AssetGroupを作成する場合、まずAssetGroupを作成する前にAssetGroupを作成する必要がありますか?
あなたはそれを間違ったレベルで処理しようとしています。
これはビジネスレベルの制約であり、データレベルの制約ではありません。あなたのビジネス層で検証を行い、あなたは大丈夫でしょう。
"ビジネスレイヤー"とは、エンティティ自体、またはデータ(NH /リポジトリ)レイヤーの上にあるものを意味します。
私は、この問題がデータベースレベルで対処されるべきではない理由はありません。 –
@ypercube:これらのことをDBレベルで処理したいのであれば、なぜNHibernateをまったく使用していますか? –
私はNHibernateを使用していません:) –
3つの方法:
適切に強制されると、 'AssetGroup'とその最初の 'Asset'の両方を強制的に作成する必要があります。 –
この質問を参照してください(そして、** '1:1..n' **部分のPerformanceDBAの回答):http://stackoverflow.com/questions/5279984/defining-a-11-relationship-within-a-リレーショナルデータベース**と多くの熱い議論... ** –