На первый взгляд выглядит нормально.
После некоторого рассмотрения кажется, что каждая транзакция связана с одной (и только одной) другой транзакцией, и что значение этой ссылки зависит от типа транзакции. Отсюда два самоссылающихся внешних ключа FeeTransactionId
и RefTransactionID
. В зависимости от типа транзакции один из этих ключей всегда равен NULL.
Хотя технически возможно иметь значения NULL в столбце внешнего ключа, это не может быть предпочтительной практикой. Вы можете иметь только один внешний ключ с собственной ссылкой, который не будет иметь значения NULL, как в этой модели.