Ansichten sind akzeptabel, wenn Sie sicherstellen müssen, dass jedes Mal komplexe Logik befolgt wird. Zum Beispiel haben wir eine Ansicht, die die Rohdaten erstellt, die für die gesamte Finanzberichterstattung benötigt werden. Wenn alle Berichte diese Ansicht verwenden, arbeiten alle mit demselben Datensatz, anstatt dass ein Bericht einen Satz von Verknüpfungen verwendet und ein anderer vergisst, einen zu verwenden, der unterschiedliche Ergebnisse liefert.
Ansichten sind akzeptabel, wenn Sie Benutzer auf eine bestimmte Teilmenge von Daten beschränken möchten. Wenn Sie beispielsweise keine Datensätze löschen, sondern nur den aktuellen als aktiv und die älteren Versionen als inaktiv markieren, möchten Sie, dass in einer Ansicht nur die aktiven Datensätze ausgewählt werden. Dies verhindert, dass Benutzer vergessen, die where-Klausel in die Abfrage aufzunehmen, und schlechte Ergebnisse erhalten.
Mithilfe von Ansichten kann sichergestellt werden, dass Benutzer nur auf eine Reihe von Datensätzen zugreifen können. Beispielsweise kann eine Ansicht der Tabellen für einen bestimmten Client und keine Sicherheitsrechte für die Tabellen bedeuten, dass die Benutzer für diesen Client immer nur die Daten sehen können für diesen Kunden.
Ansichten sind beim Refactoring von Datenbanken sehr hilfreich.
Ansichten sind nicht akzeptabel, wenn Sie Ansichten zum Aufrufen von Ansichten verwenden, was zu einer schrecklichen Leistung führen kann (zumindest in SQL Server). Wir haben fast einen Multimillionen-Dollar-Kunden verloren, weil sich jemand dafür entschieden hat, die Datenbank so zu abstrahieren, und die Leistung war horrend und es kam häufig zu Zeitüberschreitungen. Wir mussten auch für das Update bezahlen, nicht für den Kunden, da das Leistungsproblem vollständig unsere Schuld war. Wenn Ansichten Ansichten aufrufen, müssen sie die zugrunde liegende Ansicht vollständig generieren. Ich habe dies gesehen, wo die Ansicht eine Ansicht aufgerufen hat, die eine Ansicht aufgerufen hat, und so viele Millionen Datensätze generiert wurden, um die drei zu sehen, die der Benutzer letztendlich benötigte. Ich erinnere mich, dass eine dieser Ansichten 8 Minuten dauerte, um eine einfache Zählung (*) der Datensätze durchzuführen. Ansichten, die Ansichten aufrufen, sind eine äußerst schlechte Idee.
Ansichten sind oft eine schlechte Idee, um Datensätze zu aktualisieren, da Sie normalerweise nur Felder aus derselben Tabelle aktualisieren können (auch dies ist SQL Server, andere Datenbanken können variieren). In diesem Fall ist es sinnvoller, die Tabellen trotzdem direkt zu aktualisieren, damit Sie wissen, welche Felder verfügbar sind.