Je dois vérifier si un utilisateur spécifique est déjà référencé dans l'une de nos tables de transactions (nous avons environ 10 tables de transactions). J'ai suggéré d'utiliser une vue qui contiendra tous les utilisateurs qui sont déjà référencés, puis l'équipe DEV pourrait juste sélectionner à travers cette table pour savoir si les données qu'ils recherchent sont là ou non,Utilisation de UNION select à l'intérieur d'une vue
alors voici ma requête pour l'affichage:
SELECT DISTINCT user_ID
FROM transaction_table_1
UNION
SELECT DISTINCT user_ID
FROM transaction_table_2
UNION
SELECT DISTINCT user_ID
FROM transaction_table_3
UNION
SELECT DISTINCT user_ID
FROM transaction_table_4
[...]
Pour l'instant cela fonctionne, mais ma question est, est-ce une bonne idée? L'exigence demande que je fournisse seulement un script (ou une vue) et pas une procédure stockée, je pense que ce serait mieux avec un SP puisque je pourrais juste faire une rapide instruction IF EXIST() pour chaque tableau et vérifier si l'utilisateur du paramètre existe dans n'importe laquelle de la table, mais ils voulaient vraiment que ce soit seulement un script qu'ils pourraient vérifier (et pas d'utilisation de variables). Pouvez-vous me donner des conseils sur une meilleure façon de faire cette exigence, qui aurait moins d'impact sur les performances puisque ce n'est peut-être pas la solution optimisée pour cette exigence.
TIA, Rommel
IF EXISTS() est la solution la plus rapide. Que voulez-vous dire en n'utilisant pas de variables? Comment cela fonctionnerait-il sans variables et cette vue que vous avez maintenant? – Ovi
Ils utilisent hibernate pour obtenir des données de la base de données et quand j'ai suggéré un script qui utilise des variables "Declare @status INT", ils ont dit que ça ne marcherait pas et il serait mieux si je peux fournir juste une requête, J'ai suggéré d'utiliser une vue. Le plan original je pense était d'utiliser IF EXISTS() mais ils ne voulaient pas plonger dans la base de données plus d'une fois juste pour vérifier si l'utilisateur qu'ils recherchent a déjà fait une transaction. – Rohml