28 Stimmen

Was ist wichtiger? DB-Design oder Kodierung?

Was ist wichtiger: Der Entwurf der Datenbank? Oder das Design des Anwendungscodes?

Es gibt eine Menge Informationen über wiederverwendbaren Code (von Carl Franklin bei dnrtv.de , CSLA.net et. al.), aber ich sehe nicht allzu viele Informationen über das Datenbankdesign und seine Auswirkungen auf die Lebensdauer einer Anwendung (insbesondere, wie sich schlechte Designentscheidungen in der Anfangsphase auf die Anwendung in ihrem späteren "Leben" auswirken).

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.

86voto

Paul Sonier Punkte 37609

Im Allgemeinen ist die Datenbankstruktur wichtiger, da sie den strukturellen Rahmen bildet, auf dem Ihr Code entwickelt wird. Im Allgemeinen (und nach eigenem Ermessen) ist das Refactoring Ihrer DB-Struktur nach Abschluss einer Entwicklungsphase wesentlich schwieriger als das einfache Refactoring von Code, der von einer stabilen Datenbank abhängt. Der Grund dafür ist einfach: Das Refactoring Ihrer DB-Struktur erzwingt in der Regel Codeänderungen; das Gegenteil ist selten der Fall.

Ganz einfach: Ihr Code hängt mehr von Ihrer Datenbank ab als Ihre Datenbank von Ihrem Code. (Wenn dies nicht der Fall ist, müssen Sie Ihr Design überdenken).

Ich denke, viele Leute, die über diese Art von Themen schreiben/bloggen, kommen eher von der "Coding"-Seite. Diese Leute neigen dazu, Datenbankdesign als trivial und weniger interessant zu betrachten als das Programmieren interessanter Lösungen. Für jemanden, der gerne "knifflige Probleme" löst (und das sind in der Regel die Leute, die mehr bloggen), ist die Codierungsseite interessanter als die grundlegenden Designfragen. Und obwohl die grundlegenden Designfragen nicht "sexy" sind, sind sie extrem wichtig (und Datenbankdesign ist eine SEHR grundlegende Designfrage).

3 Stimmen

Ich bin mir nicht sicher, warum dies heruntergestuft wurde. +1 um es zu kontern.

3 Stimmen

Wichtiger Hinweis: Die Datenbank ist in Anwendungen, die auf eine bestimmte Weise kodiert sind, wichtiger. Wenn Sie die Daten hinter einem starken Domänenmodell abstrahieren (wie bei DDD), dann ist der Codeentwurf viel wichtiger als das Aussehen der Datenbank. Die meisten Anwendungen von erheblicher Größe können wahrscheinlich von einem hybriden Ansatz profitieren. Zum Beispiel ein starkes Domänenmodell, um die Geschäftslogik zu kapseln (DB nicht so wichtig) und Formulare über Daten für die Berichterstattung (DB-Design wird dann ziemlich wichtig).

8 Stimmen

Der Datenbankentwurf sollte niemals den strukturellen Rahmen für Ihren Code bilden. Sie müssen durch eine starke Abstraktionsschicht voneinander isoliert sein. Ihr Code sollte überhaupt nicht von Ihrer Datenbank abhängen; die Datenbank sollte so konzipiert sein, dass sie Ihren Code unterstützt. Sie haben das genau falsch verstanden. (Aber leider ist es so devrait sein, nicht wie es in der Praxis ist.)

26voto

Tommi Forsström Punkte 1467

Kurze Antwort: beides. Die Kette ist nur so stark wie ihr schwächstes Glied.

18voto

Otávio Décio Punkte 72052

Wenn Sie mit einem von beiden unvorsichtig sind, sind Sie dem Untergang geweiht.

17voto

John MacIntyre Punkte 12808

Ihr DB-Design ist am wichtigsten.

Ich bin Programmierer und ich bevorzuge Code, aber ... wenn Sie das DB-Design vermasseln, wird Ihr Code ein Albtraum sein. Ihr Code wird keine Chance haben!

Selbst wenn Sie versuchen, den DB-Entwurf zu überarbeiten, werden Sie so viel Arbeit um den Code herum haben, dass es überwältigend sein wird, alles zu reparieren.

Das ist keine Vorliebe oder gar eine knappe Entscheidung, sondern das DB-Design ist am wichtigsten.

EDIT: Selbst wenn Sie Schlüssel-Wert-Paar-Tabellen hätten, in die alles hineingeschrieben wird, wäre das immer noch ein DB-Design, das auf Geschäftsanforderungen basiert.

12voto

sybreon Punkte 3126

Knuth umschreibend -

Viel wichtiger ist es, eine effiziente Datenstruktur zu verwenden. Eine schlechte Struktur verlangsamt Ihre Anwendung unabhängig von Ihrem Algorithmus und eine gute Struktur kann sogar die Notwendigkeit für bestimmte Algorithmen überflüssig machen.

Ich denke, dass dies auch für DBs gilt. Sie bauen schließlich eine massiv verknüpfte Datenstruktur auf. Wenn Sie nicht die richtigen Methoden verwenden, wird Ihre Anwendung langsam sein, unabhängig davon, wie viel Trickserei Sie anwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X