Ich lese die SQL Server 2008-Bibel durch und gehe auf den Abschnitt Ansichten ein. Aber der Autor erklärt den Zweck von Ansichten wirklich nicht . Was ist eine gute Verwendung für Ansichten? Soll ich sie auf meiner Website verwenden und welche Vorteile bietet sie?
sql
sql-server
Luke101
quelle
quelle
Antworten:
Eine andere Verwendung, die in keiner der vorherigen Antworten erwähnt wurde, ist die einfachere Bereitstellung von Änderungen an der Tabellenstruktur.
Angenommen, Sie möchten eine Tabelle (
T_OLD
) mit Daten für aktive Benutzer zurückziehen und stattdessen eine neue Tabelle mit ähnlichen Daten (mit NamenT_NEW
) verwenden, die jedoch Daten für aktive und inaktive Benutzer enthält, mit einer zusätzlichen Spalteactive
.Wenn Ihre Systeme über unzählige Abfragen verfügen
SELECT whatever FROM T_OLD WHERE whatever
, haben Sie zwei Möglichkeiten für den Roll-out:1) Cold Turkey - Ändern Sie die Datenbank und ändern, testen und veröffentlichen Sie gleichzeitig zahlreiche Codeteile, die diese Abfrage enthielten. Sehr schwer zu tun (oder sogar zu koordinieren), sehr riskant. Schlecht.
2) Schrittweise - die DB ändern , indem die Erstellung von
T_NEW
Tabelle des TropftT_OLD
Tisch und stattdessen eine Schaffung VIEW genanntT_OLD
dass ahmt dieT_OLD
Tabelle 100% ( zum Beispiel der Ansicht Abfrage istSELECT all_fields_except_active FROM T_NEW WHERE active=1
).Das würde Ihnen ermöglicht , Code zu vermeiden Freigabe , dass zur Zeit wählt aus
T_OLD
und führen Sie die Änderungen an Migrate - Code vonT_OLD
bisT_NEW
zur freien Verfügung .Dies ist ein einfaches Beispiel, da sind andere viel mehr involviert.
PS Auf der anderen Seite hätten Sie wahrscheinlich eine API für gespeicherte Prozeduren anstelle von direkten Abfragen von haben sollen
T_OLD
, aber das ist nicht immer der Fall.quelle
(Kopiert aus dem ersten Tutorial, das in einer Google-Suche angezeigt wurde (Link jetzt tot), bietet aber alle Vorteile, die ich selbst manuell eingegeben hätte.)
quelle
Einige Gründe aus Wikipedia :
Ansichten können Vorteile gegenüber Tabellen bieten:
quelle
VIEWS können als wiederverwendbare Abschnitte von SELECT / CODE verwendet werden, die in anderen Auswahlen / Abfragen enthalten sein können, die verbunden werden sollen, und verschiedene Filter verwenden, ohne dass jedes Mal die gesamte SELECT neu erstellt werden muss.
Dadurch wird die Logik auch an einem einzigen Ort platziert, sodass Sie sie nicht in der gesamten Codebasis ändern müssen.
Schau es dir an
Auswahl zwischen gespeicherten Prozeduren, Funktionen, Ansichten, Triggern und Inline-SQL
quelle
Eine Ansicht ist eine Abstraktionsschicht und macht genau das, was eine gute Abstraktionsschicht tut, einschließlich der Kapselung des Datenbankschemas und des Schutzes vor den Folgen der Änderung interner Implementierungsdetails.
Es ist eine Schnittstelle.
quelle
Hier ist eine sehr häufige Verwendung der Verwendung von Ansichten, um eine Entität durch bestimmte Kriterien einzuschränken.
Tabelle: USERS enthält alle Benutzer
Ansicht: ACTIVE_USERS enthält alle Benutzer mit Ausnahme derjenigen, die gesperrt, gesperrt, auf ihre Aktivierung warten und keine Kriterien erfüllen, die Sie möglicherweise in Zukunft als Teil der aktiven Anforderungen definieren. Dies macht es unnötig, Zeilen aus Ihrer USERS-Tabelle zu löschen, falls Sie dies nicht möchten, da ACTIVE_USERS die unerwünschten Zeilen immer ausblenden kann.
Auf diese Weise können Sie die Tabelle auf Ihren Benutzerverwaltungsseiten verwenden, der Rest der Anwendung kann jedoch ACTIVE_USERS verwenden, da diese möglicherweise die einzigen Benutzer sind, die Prozesse ausführen und auf Daten zugreifen / diese ändern können sollten.
quelle
Mit Ansichten können Sie Daten aus mehreren verschiedenen Tabellen kombinieren und formatieren (Felder kombinieren, aussagekräftigere Feldnamen angeben usw.), um es für Endbenutzer einfacher zu machen. Sie sind eine Abstraktion des Datenbankmodells. Sie können auch verwendet werden, um Benutzern Zugriff auf die Daten in der Tabelle zu gewähren, ohne ihnen direkten Zugriff auf die Tabelle selbst zu gewähren.
quelle
Hier sind einige von vielen Gründen, warum Ansicht anstelle von Tabelle direkt verwendet wird
Von imexploring.com
quelle
Eine kleine Liste häufiger Gründe / Verwendungen:
Verwenden Sie sie, um das Format oder das Aussehen von Daten zu ändern (dh Sie können einen Vor- und Nachnamen zusammenfügen).
Führen Sie Berechnungen oder andere Suchvorgänge für Daten durch
Daten denormalisieren (Daten aus mehreren Tabellen an einer Stelle extrahieren)
quelle
Die Ansichten sind böse! Vermeiden Sie sie nach Möglichkeit und verwenden Sie sie nur aus dem von DVK genannten Grund - temporäre Datenmigration.
Sie sollten verstehen, dass es in einer Datenbank mit 100 Tabellen schwierig ist, sich den Zweck jeder Tabelle zu merken. Wenn Sie hier weitere 300 Aufrufe hinzufügen, wird dies zu einem völligen Durcheinander. Dann verwenden die "Ansichtsliebhaber" in der Regel verschachtelte Ansichten und dann die verschachtelten Ansichten in gespeicherten Prozeduren. Ich persönlich arbeite jetzt mit einer Datenbank, in der Ansichten viermal in der Tiefe verschachtelt sind! Um eine einfachste Logik einer gespeicherten Prozedur zu verstehen, muss ich zuerst alle Ansichten durchgehen.
quelle