Итак, у меня есть две таблицы:
Requests
--------
Id
RequestSchemeId
ReceivedByUserId
ForwardedRequests
-----------------
Id
RequestId (FK to Id column of Requests Table)
ForwardedToUserId
Теперь одно бизнес-правило гласит, что пользователь может получить только один запрос для конкретной схемы запросов. Поэтому я создал ограничение UniqueKey для RequestSchemeId + ReceivedByUserId. Который должен решить мою проблему
Второе бизнес-правило заключается в том, что запрос может быть переадресован другому пользователю, только если пересылаемый пользователь еще не имеет перенаправленного запроса по той же схеме от любого другого пользователя.
Решение, о котором я могу подумать, - это столбец RequestSchemeId в таблице ForwardedRequests, который является просто копией значения в соответствующей строке таблицы Requests, а затем добавляет уникальное ограничение для ForwardedToUserId + RequestSchemeId.
Это правильный способ сделать это? Если не то, что есть?
Как получить значение RequestSchemeId из запросов в ForwardedRequests, когда в последнем создается новая строка? UDF - это то, на что я смотрел, но, похоже, у него есть некоторые ошибки, и мне нужен стандартный / рекомендуемый способ сделать это, а не что-то странное.