J'ai dans mon système de nombreux documents tels que des factures de commandes, des demandes d'achat, etc. Pour suivre leur flux d'approbation, j'ai une table commune dans laquelle j'ai les colonnes suivantes.Dois-je dénormaliser à une jointure avec un bit ajouté, ou quoi?
WFID ActionDate DocInstancetype DocinstanceID iscurrent status
1 2017-04-04 PO 58 0 Submitted
2 2017-04-05 PO 58 1 Approved
3 2017-04-04 PR 74 1 Submitted
Dans mes rapports, je dois habituellement considérer uniquement les documents approuvés. Est-ce une bonne idée d'ajouter un bit IsApproved
dans la table Documents Master (dans les tables PR et PO) et de le synchroniser à l'aide d'un trigger afin d'éviter une jointure avec une table de workflow chaque fois que je n'ai besoin que de documents approuvés?
Toute autre meilleure suggestion serait également appréciée.
Il est difficile de donner des conseils, car il manque beaucoup d'informations ici. À quoi ressemblent les tableaux PO et PR, quelle est la signification du contenu de chaque table, comment les trois tableaux sont-ils reliés les uns aux autres? Une suggestion en ce moment, si vous avez besoin de "synchroniser" les tables, les chances sont que la table à synchroniser devrait vraiment être une vue. – stakx
Mieux vaut utiliser la vue; Si la vitesse est une préoccupation, vous pouvez même utiliser matérialisée. Les déclencheurs peuvent devenir difficiles et enclins à l'impasse. – Arvo