Я создаю самостоятельно связанные таблицы:Как избежать круговых отношений в SQL-Server?
Таблица Item
столбцы:
ItemId INT - ПК;
Сумма денег - не менее; Цена денег - вычисленный столбец с использованием UDF, который извлекает значение в соответствии с количеством предков.
ParentItemId int - nullable, ссылка на другой ItemId в этой таблице.
Мне нужно избегать цикла, то есть, брат не может стать предком своих предков, то есть, если ItemId = 2 ParentItemId = 1, то ItemId 1 ParentItemId = 2 не должно быть разрешено.
Я не знаю, какая должна быть лучшая практика в этой ситуации. Я думаю, что я должен добавить CK, который получает значение Scalar из UDF или что-то еще.
EDIT: Другой вариант состоит в создании ВМЕСТО триггером и положить в 1 транзакции обновление поля ParentItemId и выбрав поле Цена от @@ RowIdentity, если он не отменить сделку, но я бы предпочел проверка UDF.
Любые идеи искренне приветствуются.
я, вероятно, необходимо убедиться, что в потоке предок не должен стать ребенком. Я сомневаюсь, какова должна быть лучшая практика. – Shimmy
Лучшей практикой было бы не тратить слишком много времени на решение проблем, которые не произойдут. –