Zwei Modelle, ein STI und eine Validierung

Sagen wir, ich habe zwei Tabellen - Produkte und Bestellungen. Der Einfachheit halber wird angenommen, dass nur ein Produkt gleichzeitig gekauft werden kann, sodass es keine Join-Tabelle wie order_items gibt. Die Beziehung ist also, dass das Produkt viele Bestellungen hat und die Bestellung zum Produkt gehört. Daher ist product_id ein fk in der Order-Tabelle.

Die Produkttabelle ist STI - mit den Unterklassen A, B, C.

Wenn der Benutzer die Unterklasse "Produkt C" bestellt, müssen in den Feldern "Bestellmodell", "Bestelldetails" und "Bestellstatus" zwei spezielle Überprüfungen überprüft werden. Diese beiden Felder können für alle anderen Produktunterklassen (dh A und B) Null sein. Mit anderen Worten, für diese beiden Felder muss keine Validierung ausgeführt werden, wenn ein Benutzer A und B kauft.

Meine Frage ist

Wie schreibe ich Validierungen (möglicherweise benutzerdefiniert?) In das Bestellmodell, sodass das Bestellmodell nur die Validierungen für die beiden ITS-Felder "order_details" und "order_status" ausführen kann, wenn die fk_id für die Produktunterklasse C in den Bestellungen gespeichert wird Tabelle

Antworten auf die Frage(1)

Ihre Antwort auf die Frage