J'ai une table avec deux tables pour enfants. Pour chaque enregistrement dans la table parente, je veux un et un seul enregistrement dans l'une des tables enfant - pas un dans chaque, pas aucun. Comment puis-je définir cela?garantir les enregistrements enfants dans une table ou une autre, mais pas les deux?
Voici la trame de fond. N'hésitez pas à critiquer cette implémentation, mais veuillez répondre à la question ci-dessus, car ce n'est pas la seule fois que je l'ai rencontré:
J'ai une base de données qui contient des données relatives aux enquêtes auprès des utilisateurs. Il a été conçu à l'origine avec une méthode d'authentification pour démarrer une enquête. Depuis lors, les exigences ont changé, et il y a maintenant deux façons différentes de s'inscrire pour lancer un sondage.
À l'origine, j'ai capturé le jeton d'authentification dans une colonne de la table d'enquête. Comme les exigences ont changé, il y a trois autres bits de données que je veux capturer dans l'authentification. Donc, pour chaque enregistrement dans la table de sondage, je vais avoir un jeton, ou un ensemble de trois. Au lieu d'avoir quatre colonnes où l'une sera nulle, ou trois seront nulles (ou pire encore, un mauvais mashup de l'un ou l'autre de ces scénarios), J'aurais deux tables enfants, l'une pour contenir le jeton d'authentification unique, l'autre pour contenir les trois. Le problème est que je ne sais pas comment définir cela en DDL. J'utilise MySQL, alors il y a peut-être une fonctionnalité que MySQL n'implémente pas et qui me permet de le faire.
Ah! Les déclencheurs sont quelque chose que je n'ai jamais utilisé. Est-ce une situation où il n'y a pas d'autre choix qu'un déclencheur? Comment feriez-vous ce que je veux faire? – user151841
Je considérerais violer la 3ème forme normale et mettre les 4 colonnes dans une table. –
Pratique gagne, Raj :) – user151841