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.

1voto

Dhaust Punkte 5430

Beide sind natürlich wichtig, es ist eine symbiotische Beziehung.

Aber wenn Ihre DB defekt ist, kann kein noch so guter Code Ihre Anwendung zum Strahlen bringen.

Wenn Ihre DB jedoch wirklich gut ist, kann guter Code sie noch besser machen (aber schlechter Code kann sie immer noch ruinieren).

1voto

dr. Punkte 1409

Beide

Ein großartiger Code kann durch ein grauenhaftes Datenbankdesign ruiniert werden, und ein großartiges Datenbankdesign kann durch einen grauenhaften Code ruiniert werden.

0 Stimmen

Ich kann nicht behaupten, dass ich jemals einen großartig db design. Ich sag's ja nur...

1voto

Chris Brandsma Punkte 11525

Hängt davon ab, wo Sie in Sachen Wissen über...und Produktanforderungen stehen.

Wird eine der beiden Seiten vernachlässigt, kann Ihr Produkt in Schwierigkeiten geraten.

Abgesehen davon neige ich dazu, nach dem DDD-Stil zu programmieren, bei dem ich alles außer meiner Datenbank zuerst definiere. So habe ich eine bessere Vorstellung davon, welche Daten gespeichert werden müssen.

Sobald dies abgeschlossen ist, kann ich meine Datenbank erstellen und entsprechend anpassen.

1voto

Michael Meadows Punkte 26846

Das hängt davon ab, was für Ihr Unternehmen wichtig ist. Idealerweise sollten Sie keine der beiden Optionen zu kurz kommen lassen, aber wenn Sie müssen, sollten Sie sich auch diese Frage stellen:

Ist Ihre Anwendung dazu da, Daten zu verarbeiten, oder gehen die Daten über Ihre Anwendung hinaus?

Mit anderen Worten: Wenn der Code Ihrer Anwendung heute in die Luft fliegt, aber Ihre Daten noch da sind, wie schlimm wäre die Katastrophe? Wenn Ihre Antwort lautet:

Ich kann immer noch den Code schreiben, um die Anwendung zu ersetzen, aber ohne die Daten sind wir aufgeschmissen.

Dann sollten Sie dafür sorgen, dass Ihre Daten solide sind, denn sie werden wahrscheinlich jeden Code überleben, den Sie heute schreiben. Das soll nicht heißen, dass Sie keine großen Anstrengungen unternehmen sollten, um eine solide Codebasis zu schreiben, aber der Code ist letztlich vergänglich, Ihre Daten hingegen nicht. Wenn Sie mit schlechtem Code feststecken, können Sie ihn umschreiben, aber wenn Sie schlechte Daten haben, wird das wahrscheinlich viel weitreichendere Auswirkungen haben.

Wenn die Daten jedoch nur dazu da sind, um sicherzustellen, dass Ihr Code gut funktioniert, und der Code selbst wichtiger ist (die Umkehrung des obigen Szenarios), sollten Sie sicherstellen, dass Sie eine gute Codebasis haben, und eventuelle Mängel in den Daten später noch einmal überprüfen.

EDITAR

Bei den meisten Unternehmensanwendungen sind die Daten viel wichtiger. Ich habe in der Vergangenheit an Konvertierungsprojekten gearbeitet, bei denen der Code seine Lebensdauer weit überschritten hatte, die Migration aber so lange (manchmal Jahrzehnte) hinausgezögert wurde, weil die Daten so schlecht waren, dass es erheblicher und sehr diskreter Anstrengungen bedurfte, um die Daten in einen Zustand zu bringen, in dem sie migriert werden konnten.

0 Stimmen

Es handelt sich um drei völlig unterschiedliche Dinge - Software, Datenbankschema und Daten. Ohne Daten sind weder die Software noch das Schema etwas wert.

0 Stimmen

Einverstanden, aber ein schlechtes Schema macht die Daten weniger verfügbar, insbesondere wenn der Code das Ende seines Lebenszyklus erreicht.

1voto

John Punkte 1094

Sie schließen sich nicht gegenseitig aus. Beide müssen grundsolide sein, um eine Chance auf eine grundsolide Lösung zu haben.

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