Quand et pourquoi une certaine décide-t-elle que dont ils ont besoin créer une vue dans leur base de données ? Pourquoi ne pas simplement exécuter une procédure stockée normale ou sélectionner ?
Réponses
Trop de publicités?Vue offre plusieurs avantages.
1. Les vues peuvent masquer la complexité
Si vous avez une requête qui nécessite de joindre plusieurs tables, ou a une logique complexe ou des calculs, vous pouvez code logique dans une vue, puis sélectionnez à partir de la vue comme vous le feriez d'une table.
2. Les vues peuvent être utilisés comme un mécanisme de sécurité
Une vue peut sélectionner certaines colonnes et/ou lignes d'une table, et de définir des autorisations sur la vue au lieu de les tables sous-jacentes. Cela permet de revêtement de surface uniquement les données que l'utilisateur a besoin de voir.
3. Les vues peuvent simplifier l'appui du code legacy
Si vous avez besoin de refactoriser un tableau qui permettrait de briser beaucoup de code, vous pouvez remplacer la table avec une vue du même nom. La vue donne exactement le même schéma que la table d'origine, alors que le schéma a été modifié. Cela permet de maintenir l'héritage de code qui fait référence à la table de la rupture, vous permettant de modifier l'héritage le code à votre guise.
Ce sont quelques-uns des nombreux exemples de la façon dont les avis peuvent être utiles.
Entre autres choses, il peut être utilisé pour la sécurité. Si vous avez une table « client », vous pouvez donner à tous l’accès de votre équipe de vente pour les nom, adresse, code postal, champs etc., mais pas credit_card_number. Vous pouvez créer une vue qui inclut uniquement les colonnes que dont ils ont besoin d’accéder à et puis lui accorder un accès sur la vue.
J'ai l'habitude de créer des vues de normaliser et/ou agréger des données fréquemment utilisées à des fins de reporting.
MODIFIER
Par voie d'élaboration, si je devais avoir une base de données dans laquelle certaines entités en personne, l'entreprise, la fonction, le type de propriétaire, la commande, le détail, l'adresse et le téléphone, où la personne table stockée à la fois des employés et des contacts, l'adresse et le téléphone des tables de numéros de téléphone enregistrés pour les deux personnes et les entreprises, et l'équipe de développement ont pour mission de générer des rapports (ou de rendre les données accessibles à des non-développeurs), telles que les ventes par employé, ou de vente par le client, ou des ventes par région, les ventes par mois, les clients de l'état, etc je voudrais créer un ensemble de points de vue qui dé-normalisé les relations entre les entités de base de données, de sorte qu'une vision plus intégrée (no pun intended) du monde réel entités était disponible. Certains des avantages pourraient inclure:
- La réduction de la redondance dans l'écriture de requêtes
- L'établissement d'une norme pour ce qui concerne les entités
- En offrant des possibilités de évaluer et optimiser les performances pour les calculs complexes et les jointures (par exemple, l'indexation sur la liaison de schéma (vue dans MSSQL)
- Rendre les données plus accessibles et intuitive pour les membres de l'équipe et les non-développeurs.
Plusieurs raisons: Si vous avez compliqué rejoint, il est parfois préférable d'avoir une vue d'ensemble pour que tout accès aurez toujours la rejoint correcte et les développeurs ne t ont à se souvenir de toutes les tables dont ils pourraient avoir besoin. Typiquement, cela peut être pour un financière de l'application où il serait extrêmement important que tous les rapports financiers sont basés sur le même jeu de données.
Si vous avez des utilisateurs que vous souhaitez limiter le nombre d'enregistrements qu'ils peuvent jamais voir, vous pouvez utiliser une vue, de leur donner accès qu'à la vue de ne pas les tables sous-jacentes et ensuite d'interroger le point de vue
Crystal reports semble préférer utiliser des vues pour l'entreposage des procs, de sorte que les gens qui font beaucoup de la rédaction du rapport ont tendance à utiliser beaucoup de points de vue