Meiner Erfahrung nach (und ich bin seit etwa 30 Jahren mit der Behebung von Datenbankproblemen befasst und habe mit Hunderten von verschiedenen Datenbanken zu tun gehabt) sind allzu viele Probleme mit der Leistung von Datenbanken auf die unangemessenen Versuche zurückzuführen, Code wiederzuverwenden. Funktionen sind viel langsamer als Inline-Code. Cursor, die eine gespeicherte Prozedur wiederverwenden, die einen Datensatz nach dem anderen einfügt, sind viel, viel, viel (Lichtjahre) langsamer als mengenbasierter Code. Die Wiederverwendung einer Prozedur, die das, was Sie brauchen, und zehn weitere Felder zurückgibt, ist eine Verschwendung von Server- und Netzwerkressourcen. Die Verwendung einer vorhandenen Ansicht, die mit zehn Tabellen verknüpft ist, wenn Sie nur Informationen aus drei Tabellen benötigen, ist eine Verschwendung von Serverressourcen. Die Wiederverwendung von Code in Datenbanken ist nicht annähernd so sinnvoll wie in anderen Bereichen. Das soll nicht heißen, dass Code nicht wiederverwendet werden sollte, wenn es nötig ist. Sie sollte nur nie Vorrang vor der Leistung haben. Datenbanken sind leider nicht gut für die Wiederverwendung von Code geeignet. Die meisten Datenbanken sind nicht objektorientiert, und objektorientiertes Denken beim Entwurf oder Zugriff auf sie führt oft zu einem schlechten Entwurf.
Bevor Sie überhaupt über die Wiederverwendung von Code nachdenken können, brauchen Sie ein grundsolides normalisiertes Datenbankdesign. Sie müssen sich Gedanken darüber machen, wie Sie Daten in die Datenbank extrahieren und einfügen wollen. Sie müssen sich Gedanken darüber machen, wie gut das funktionieren wird, wenn es erst einmal viele Benutzer und Datensätze gibt, denn die Neugestaltung einer grundlegenden Datenbankstruktur wird zu diesem Zeitpunkt oft zu teuer und zeitaufwändig. Es ist oft viel einfacher, den Anwendungscode zu überarbeiten als die grundlegende Datenbankstruktur, und viel zu oft wird das Refactoring der Datenbank nicht durchgeführt. Wenn Sie die Tabellenstruktur ändern, um von einer denormalisierten Tabelle zu einer Eltern-Kind-Struktur überzugehen, weil Sie feststellen, dass die aktuelle Struktur nicht Ihren Anforderungen entspricht, müssen Sie am Ende möglicherweise Hunderte oder sogar Tausende von Abfragen für diese Tabelle ändern. Aus diesem Grund ist es wichtig, viel Zeit auf das Datenbankdesign zu verwenden, da Sie später aus Zeit- und Kostengründen keine Gelegenheit mehr haben werden, es zu überarbeiten. Wenn Sie sich die Datenbank als das Fundament des Hauses und den Anwendungscode als die Struktur vorstellen, werden Sie verstehen, warum das so ist. Es ist viel schwieriger, das Fundament mit der darauf befindlichen Struktur zu ändern, als die Innenwände zu verschieben. Mit Datenbanken und den Anwendungen, die auf sie zugreifen, verhält es sich genauso.
3 Stimmen
Subjektiv und argumentativ, Sie müssen wahrscheinlich zwei Fragen stellen, und zwar getrennt nach den Gründen für die jeweilige Bedeutung, nach den Vor- und Nachteilen des jeweiligen Ansatzes usw.
11 Stimmen
Ich denke, die Frage ist in Ordnung.
3 Stimmen
Ich stimme zu, ich denke, die Frage ist in Ordnung, da es sich um eine vergleichende Frage handelt.
2 Stimmen
Ich denke, dass diese Frage auch in Ordnung ist, vielleicht wenn sie bearbeitet wird: Wo sollen wir anfangen - beim Modell oder beim Controller.
0 Stimmen
Ich habe es bearbeitet... aber nicht im MVC-Kontext, sondern um ein Verständnis dafür zu geben, warum ich diese Frage überhaupt stelle.
1 Stimmen
Erfordert eine ausführliche Diskussion; S&A; deshalb habe ich für "schließen" gestimmt. Einschränkung des Geltungsbereichs, Erfordernis von Fakten oder Beseitigung der Subjektivität, damit ich für die Wiederaufnahme stimme.
0 Stimmen
Nun, ich bin neu hier und soweit ich wusste, habe ich es spezifischer für Microsoft.Net gemacht. Nun, wenn das nicht überzeugend ist, kann ich Ihnen die Google-Ergebnisse zeigen google.co.in/ Bemerken Sie die Ergebnisse?...nicht viel Info darüber online...aber mehr über Code.
5 Stimmen
Das ist eine sehr gute Frage für jemanden, der neu ist.
0 Stimmen
Ich habe sie so bearbeitet, dass sie mehr Sinn ergibt und wie eine "gute" Frage aussieht.