2009-05-29 6 views
1

Eines der Dinge, die mich über ERDs verwirrt, ist, ob sie irgendwelche Vorschriften machen, wie ihre Beziehungen technologisch umgesetzt werden sollten.Schreibt eine ERD einen Implementierungsansatz vor?

Im Diagramm unten bin ich nicht sicher, ob das Diagramm erfordert, dass diese Beziehungen auf Datenbankebene oder auf Anwendungsebene implementiert werden.

Macht es irgendwelche technologischen Vorschriften oder definiert einfach die Beziehung und überlasse es mir zu entscheiden, wie ich es umsetzen soll?

Benötige ich mehr Informationen vom Ersteller der ERD, bevor ich etwas aufbaue, das darauf basiert?

alt text http://i40.tinypic.com/eslumd.jpg

Antwort

1

Ein ERD ist kein "technologisches Rezept", wie Sie es nennen, sondern einfach eine Darstellung von logischen Beziehungen.

Wie Sie es implementieren - in der Datenbank oder der Anwendung - liegt ganz bei Ihnen.

Aber die Datenbank ist der geeignete Ort, um diese Beziehungen zu erzwingen.

3

Es scheint, dass Sie das Problem den Kopf drehen.

Die Antwort ist natürlich: Nein, es gibt nichts, was Sie zwingt, Beziehungen in der Datenbank zu erstellen. Aber warum würdest du das nicht tun?

Das ist, warum die Datenbank relationale Datenbank genannt wird - weil es Ihnen eine Lösung nur auf diese Frage bietet, die leicht verfügbar, gut integriert mit Werkzeugen und Persistenzschichten ist, und es ist Auswirkungen auf die Anwendungsentwickler sind gut verstanden.

Es wäre verrückt, keine Beziehungen auf Datenbankebene zu implementieren.

0

Ein ERD-Diagramm ist ein logisches Diagramm, das Entitätsbeziehungen und ihre Kardinalität zeigt, obwohl es gleichzeitig als Tabellen- oder Klassendiagramm interpretiert werden kann, aber es ist keines von beiden, und Sie werden die anderen Diagramme weiterhin benötigen.

BTW, soweit ich weiß, ist es immer gut, Beziehungen in Ihrem Datenbankmodell zu erzwingen, um die Datenbankkonsistenz zu erhalten.

0

Ich würde sagen, so redundant wie möglich sein, wenn es darum geht, Daten zu validieren, die in Ihre Datenbank eingegeben werden.

Überprüfen Sie die App-Seite, um sicherzustellen, dass die Gültigkeit von Uniquness/Datentyp in Ordnung ist. Und strukturieren Sie die Datenbank so, dass alle benötigten Beziehungen vorhanden sind.

Lassen Sie die Datenbank/Anwendung nicht einfach davon ausgehen, dass alles korrekt ist.

Dies kann Sie mehrere Stunden der Reparatur von verwaisten Aufzeichnungen und Konsistenzprobleme speichern.

0

"macht es irgendwelche technischen Vorschriften ..."

Es ist nicht wie Code sieht. Vielleicht vermisse ich etwas.

"oder einfach die Beziehung definieren und es mir überlassen, wie ich es umsetzen soll?"

Das hängt von Ihrem Kunden ab.

Wenn sie denken, dass das Diagramm isomorph zu Code ist, dann müssen Sie die fehlenden Teile aus Konvention oder Kontext verstehen.

Wenn sie nicht denken, dass das Diagramm isomorph zu Code ist, dann müssen Sie entscheiden, wie es zu implementieren ist.