Disons que j'ai deux tables - Produits et commandes. Par souci de simplicité, supposons qu'un seul produit puisse être acheté à la fois, il n'y a donc pas de table de jointure comme order_items. Donc, la relation est que le produit a beaucoup de commandes, et l'ordre appartient au produit. Par conséquent, product_id est un fk dans la table Order.Deux modèles, un STI et une validation
Le tableau produit est STI - avec les sous-classes étant A, B, C.
Lorsque l'utilisateur commande sous-classe produit C, deux validations spéciales doit être vérifié sur les champs de modèle d'ordre Order_Details et ORDER_STATUS. Ces deux champs peuvent être nuls pour toutes les autres sous-classes de produits (c.-à-d. A et B). En d'autres termes, aucune validation doit fonctionner pour ces deux champs lorsqu'un utilisateur achète A et B.
Ma question est:
Comment puis-je écrire des validations (? Peut-être personnalisés) dans le modèle de commande afin que la Le modèle de commande sait qu'il exécute uniquement les validations pour les deux champs ITS - order_details et order_status - lorsque la sous-classe fk_id to Product est enregistrée dans la table des commandes?
Existe-t-il une alternative à l'utilisation du polymorphisme ici? – keruilin
ouais ... voir mes modifications à nouveau :) Il s'est juste aperçu sur ce que vous étiez vraiment après. Pour les questions futures, il pourrait être préférable d'inclure le code du modèle réel. Cela m'aurait aidé dès le début (là encore j'étais partout, donc ça aurait pu être juste moi :) –
oui, ne pense pas que c'est toi! c'était ma déclaration de prob original. Merci pour votre aide. – keruilin