Comment puis-je créer un renvoi de la table/requête pour mes données?
J'ai deux tables dans ma base de données. Une "carte" de la table qui contient l'Id, le Nom et le texte de la carte, et un "décisions" de la table qui contient l'Id de la carte et du texte détaillant les décisions de la carte.
Assez souvent dans la décision de texte, il y a une référence à une autre carte dans la base de données. Il est assez facile de trouver cela dans le texte, car chaque carte est encapsulée à l'intérieur de guillemets dans le texte. Il n'est pas rare d'avoir plusieurs cartes référencés dans le texte de la décision.
Ce que je voudrais faire est d'être capable de créer une table de concordance (ou de la procédure si elle est assez efficace) de sorte que lorsque je soumettre une requête pour une carte, je peux trouver tous les décision enregistrements directement référence à la carte grâce à l'Id et obtenir tous de la décision enregistrements où le nom de la carte est référencé dans le texte.
Quelle serait la meilleure façon d'aborder cette question? Mon environnement est SQL 2005, mais une sorte de "DB agnostique" les solutions sont largement accepté ici.
Vous devez vous connecter pour publier un commentaire.
Cela semble assez simple et commune relationnel problème qui est résolu par une table de renvois. Par exemple:
Pour obtenir toutes les cartes des décisions pour une carte:
Pour obtenir toutes les cartes référencés dans un jugement d'une carte donnée:
C'était tout en haut de ma tête et n'est pas testé, donc il pourrait y avoir des erreurs syntaxiques, etc.
Votre frontal serait responsable du maintien de la référence. C'est sans doute souhaitable, car elle évite le problème de quelqu'un d'oublier de mettre des guillemets autour du nom de la carte dans un arrêt de texte, etc.
Je vous recommande de créer une autre table qui stocke vos références. Ensuite, créez un élément déclencheur de mise à jour qui maintient ce tableau. De cette façon, vous avez un plus rapide requête pour renvoyer les données que vous recherchez.
Je reconnais que le remplissage initial de cette table peut être un peu difficile, c'est pourquoi je suis en train de montrer des exemples de données (et de la requête) ci-dessous, que vous pouvez utiliser pour vous aider à démarrer.
EDIT:
La raison pour laquelle je propose une autre table est parce que vous risquez d'être déçu par les performances de cette requête, en particulier pour les grandes tables.