Скажем, у меня есть две таблицы — «Продукты» и «Заказы». Для простоты предположим, что единовременно можно приобрести только один продукт, поэтому таблицы соединения, такой как order_items, нет. Таким образом, отношение состоит в том, что у продукта много заказов, а заказ принадлежит продукту. Следовательно, product_id — это fk в таблице Order.
Таблица продуктов STI — с подклассами A, B, C.
Когда пользователь заказывает продукт подкласса C, необходимо проверить две специальные проверки в полях модели заказа order_details и order_status. Эти два поля могут быть нулевыми для всех других подклассов продуктов (т. е. A и B). Другими словами, для этих двух полей не требуется выполнять проверку, когда пользователь покупает A и B.
Мой вопрос:
Как мне написать проверки (возможно, пользовательские?) в модели заказа, чтобы модель заказа знала, что нужно запускать проверки только для двух полей ITS — order_details и order_status — когда fk_id для подкласса продукта C сохраняется в таблице заказов ?