SQLALchemy-Relationships

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
wisjab
User
Beiträge: 11
Registriert: Donnerstag 29. März 2012, 14:06

Hallo,
ich habe eine Frage zu SQLAlchemy:

wie kann man relationships (aggregation and aggregation/composition) mit SQLAlchemy modellieren?

ich bin auf eure ideen/ euer wissen gespannt...
Danke, Wisjab
BlackJack

@wisjab: Die Dokumentation hast Du schon durchgelesen und das ORM-Tutorial durchgearbeitet? Was sind denn die konkreten Fragen? Wie man Tabellen in Beziehung setzt wird dort ja erklärt. Und welche Daten man dann in eine Tabelle packt und wie man die Tabellen verknüpft hängt nicht zuletzt von den Daten ab und wie die erwarteten Abfragen aussehen werden.

Man sollte auf jeden Fall den Entwurf nicht rein OOP machen. Denn letztendlich muss auch ein ORM die Strukturen am Ende irgendwie in das relationale Modell umsetzen können. Und wenn man das nicht vom Anfang an im Auge behält, kann an der Stelle Probleme bekommen. Ist jedenfalls meine Erfahrung bisher.
wisjab
User
Beiträge: 11
Registriert: Donnerstag 29. März 2012, 14:06

@BlackJack: Vielen Dank für Deine Antwort.
Meine Frage ist: gibt es bestimmte Regeln, die man benutzen kann, um die "RELATIONSHIPS: AGGREGATION AND AGGREGATION/COMPOSITION" zwischen Klassen zu modellieren?
BlackJack

@wisjab: Ich verstehe die Frage ehrlich gesagt auch komplett in Grossbuchstaben nicht besser. ;-)

Aggregation und Komposition kenne ich eigentlich eher aus OOP, und nicht aus dem relationalen Datenbankentwurf. Das hätte dann nichts mit SQLAlchemy zu tun. Und die „Regel” bei OOP ist, dass ein Objekt bei Komposition von den Teilen abhängig ist, also nicht ohne die verbundenen Objekte sinnvoll existieren kann, während das bei Aggregation der Fall sein kann, die verbundenen Objekte also optional sind. Was das in der Praxis im Entwurf heisst hängt ganz von der Semantik im konkreten Fall und in nicht wenigen Fällen auch vom persönlichen Empfinden ab [1]_. Und bei der Implementierung mit einem ORM im Hintergrund kannst Du Dir ja mal überlegen wo eine Relationship auch NULL werden darf und wo nicht.

.. [1] UML aggregation vs. composition
wisjab
User
Beiträge: 11
Registriert: Donnerstag 29. März 2012, 14:06

@BlackJack: Vielen Dank für Deine Empfehlung und für Deine schnelle Antwort
Antworten