Frage

Ich bin die Implementierung einer Web - basierte Anwendung mit einer SQL Server DB auf dem Backend für alle Daten unter Verwendung von Silverlight, die die Anwendung angezeigt werden soll. Ich möchte sicherstellen, dass die Anwendung leicht skalierbar sein kann und ich fühle die Richtung zu gehen mit dieser die Datenbank lose gekoppelter zu machen und nicht alles, was sich mit Fremdschlüssel zu binden. Ich habe für einige Beispiele versucht gesucht, aber ohne Erfolg.

Hat jemand irgendwelche Informationen oder gute Ausgangspunkte / samples / Beispiele mir den Boden mit diesem aussteigen zu helfen?

Hilfe sehr geschätzt.

Mit freundlichen Grüßen

War es hilfreich?

Lösung

Wenn Sie große Mengen von Einsätzen zu einem Zeitpunkt tun, wie mit einem Data-Warehouse, Fremdschlüssel . Normalisierungs wie verrückt skaliert, und Sie sollten das auszunutzen. Fremdschlüssel sind schnell, und die Einschränkung wirklich nur hält Sie zurück, wenn Sie Millionen auf Millionen von Datensätzen zu einem Zeitpunkt eingeführt wird.

Stellen Sie sicher, dass Sie Integer-Schlüssel verwenden, die einen gruppierten Index auf sie haben. Dies sollte sehr schnell machen Fügetisch. Die Fragen können Sie sich selbst um ohne Fremdschlüssel gewickelt bekommen sind viele und frustrierend. Ich habe gerade das ganze Wochenende so zu tun, und wir haben eine bewusste Wahl keine Fremdschlüssel haben (wir haben Terabyte an Daten, obwohl).

Andere Tipps

Ich glaube, Sie mischen Ihre Terminologie ein wenig. „Locker gekoppelt“ bezieht sich auf die Erwünschtheit der Software-Komponenten aufweisen, die nicht so voneinander abhängig sind, dass sie nicht funktionieren kann, oder auch ohne kompilieren zusammen im gleichen Programm ist. Ich habe noch nie den Begriff verwendet gesehen die Beziehungen zwischen Tabellen in derselben Datenbank zu beschreiben.

Ich denke, wenn Sie auf die Begriffe „Normalisierung“ suchen und „Denormalisierung“ Sie werden bessere Ergebnisse erzielen.

Bevor Sie überhaupt an so etwas denken, müssen Sie über die Datenintegrität denken. Fremdschlüssel vorhanden ist, so dass Sie keine Datensätze in Tabellen, wenn die primären Daten, die sie auf basieren setzen können nicht da sind. Wenn Sie keine Fremdschlüssel nicht verwenden, werden Sie früher oder später (wahrscheinlich früher) enden mit wertlos Daten, weil Sie nicht wirklich wissen, wer der Kunde ist, dass der Auftrag zum Beispiel angebracht ist. Fremdschlüssel Datenschutz sind, sollten Sie nie in Betracht, nicht verwenden.

Und auch wenn Sie alle Ihre Daten denken aus Ihrer Anwendung kommen, im wirklichen Leben, das ist einfach nicht wahr. Daten werden in aus mehreren Anwendungen, von der Einfuhr von großen Datenmengen, aus dem Abfragefenster (denken, wenn jemand alle Preise zu aktualisieren entscheidet sie nicht zu einer Zeit, von der Benutzeroberfläche, dass ein Preis geht zu tun). Die Daten können in der Datenbank aus vielen Quellen erhalten und müssen auf Datenbankebene geschützt werden. Weniger zu tun ist Ihre gesamte Anwendung und Daten in Gefahr zu bringen.

Intersting Kommentar zu Datenbank-Sicherheit, wenn Daten eingegeben werden durch externe Quellen wie Datenbankskripts.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top