私は自己関連のテーブルを作成しています:
テーブルItem
列:
ItemId int-PK;
金額-nullではありません。価格マネー-アイテムの祖先の金額に従って値を取得するUDFを使用して計算された列。
ParentItemId int-null許容、このテーブル内の別のItemIdへの参照。
ループを回避する必要があります。つまり、兄弟は祖先の祖先になることはできません。つまり、ItemId = 2 ParentItemId = 1の場合、ItemId 1 ParentItemId=2は許可されません。
この状況でのベストプラクティスはどうあるべきかわかりません。UDFなどからスカラー値を取得するCKを追加する必要があると思います。
編集: 別のオプションは、INSTEAD OFトリガーを作成し、1つのトランザクションにParentItemIdフィールドの更新を入れ、トランザクションのキャンセルに失敗した場合は@@ RowIdentityからPriceフィールドを選択することですが、UDF検証を希望します。
どんなアイデアでも大歓迎です。