Par exemple, j'ai une table de recherche de balises qui joint des balises à 3 types de tables différents (ObjectTypes). Chacun a des balises, mais elles ne sont pas partagées.Devrais-je toujours concevoir autour de clés étrangères?
Donc, je pourrais le faire
Tagid | ObjectType | ObjectId |
Et quand je rejoins la table ensemble, je voudrais juste filtrer par type d'objet avant de rejoindre.
Maintenant je sais que cela casserait la capacité de faire une clé étrangère sur le sens de la colonne ObjectId pourrait être l'une des trois tables.
Question est .. Est-ce une chose terrible? si oui, pourquoi?
L'autre option consiste à créer une table de correspondance pour chaque objet, sauf s'il existe une meilleure méthode.
Et cela pourrait être un cas de conception pour l'avenir alors que je ne devrais pas. Il devient moins de travail de conception pour ajouter une autre table d'objets, mais à long terme cela pourrait empirer les choses. – efbenson