У меня есть таблица, в которой хранятся платежи, и я хочу убедиться, что в качестве способа оплаты используется кредитная карта, тогда в поле типа карты должно быть указано IN («Visa», «MasterCard», «Discover», «American Express»), однако если в качестве способа оплаты используется не кредитная карта, поле типа карты должно быть NULL.
Позволит ли контрольное ограничение использовать выражение вроде этого:
(method = 'CC' AND cardType IN ('Visa', 'MasterCard', 'Discover', 'American Express'))
OR
(method != 'CC' AND cardType = NULL)
С этим я могу быть совершенно не согласен, поскольку ограничения следует использовать только для проверки 1 поля (не уверен).
Также, если такое утверждение разрешено, может ли это быть неблагоприятным для производительности?
Редактировать: Я планирую в конечном итоге создать поле cardType, и в нашей таблице платежей в качестве внешнего ключа будет указан cardType ... это то, чем я сейчас хочу заняться