Je suis nouveau dans la conception de bases de données et j'ai cette question sur le choix de Triggers vs Views pour mon projet. Voici quelques détails:Utilisation de Triggers vs Views pour obtenir l'état actuel des données
base de données utilisée: MySQL
Table 1:
Name: - no limit on number of values
Level: - four values are possible - 1,2,3,4
Status: - four values are possible - a,b,c,d
Chaque nom CAN (non obligatoire, mais possible) détiennent toutes les combinaisons de niveau et le statut.
Exemple:
Nom: "King" peut contenir le niveau 1 a, le niveau 1 b, ......, le statut de niveau 2 a, le statut de niveau 2 b ..... état Level3 a, Level 3, status b .....
Maintenant, je dois interroger la base de données pour faire quelques calculs pour les afficher à l'utilisateur via une interface graphique (Java Swing) qui fonctionne sur le réseau.Les calculs dont j'ai besoin sont ...
nombre de chaque statut pour chaque niveau pour chaque nom. par exemple:
Combien de "statut a" dans le niveau 1 pour King. Combien de "statut b" dans le niveau 1 pour King. Combien de "statut c" dans le niveau 1 pour King. Combien de "statut d" dans le niveau 1 pour King. Combien de "statut a" dans le niveau 2 pour King. ainsi de suite ....
Nom --- Niveau --- état
roi --- 1 --- un
roi --- 1 --- un
roi --- 1 --- un
roi --- 1 --- b
roi --- 1 --- b
King --- 1 --- d
ainsi de suite avec le niveau 2 et ensuite des noms différents aussi. je veux le compte d'un niveau 1 pour le nom « King »
si j'exécuter des requêtes distinctes pour obtenir ces données, je dois exécuter 320 requêtes si j'ai 20 noms. ce que je ne veux pas. J'ai deux solutions ici ...
Solution 1. J'ai créé un déclencheur.
I créé Tableau 2:
Name,Level,a_count,b_count,c_count,d_count
King 1 3 2 0 0
xyz 1 ... ..... .... ...
lorsque le tableau d'origine 1 est mis à jour le déclencheur ajoute au compte en conséquence. Maintenant, je lis directement à partir de cette table2.
Solution 2: Création d'une vue affichant ces données.
Nom - Niveau - Statut - comte
Roi 1 a 3
Roi 1 b 2
King 2 ... un
ainsi de suite.
Avec cette solution, je n'ai pas besoin d'envoyer toutes les requêtes sur le réseau tout le temps. Je peux juste appeler la vue une fois (il exécute toutes les requêtes de toute façon mais pas besoin de le faire depuis le programme)
Je pourrais implémenter les deux mais je veux savoir quelle solution est la plus efficace. Je vais avoir environ 2000 lignes dans la table parente pour chaque utilisateur (en utilisant mon frontal) et les utilisateurs peuvent être n'importe quel nombre. Veuillez suggérer.
Merci, Raju
Quelqu'un s'il vous plaît laissez-moi savoir ce qui peut être utilisé entre Triggers et Views pour obtenir des données résumées à partir d'une table parent? – Raju