Bestehende Klassen um SqlAlchemy erweitern

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Guten Tag,
ich habe für ein kleines Kassensytem bereits bestehende Klassen mit Programmlogik, zum Beispiel Product.


Diese möchte ich nun um eine Speichermöglichkeit mit SQLALchemy erweitern. Ist dies nachträglich noch möglich? Ist es eventuell auch möglich, SQLAlchemy auf eben diese Klassen zu mappen, oder muss ich diese direkt um die Entities von SqlAlchemy erweitern?

Ich hoffe, ihr versteht was ich meine.

Gruß
sprudel
deets

So einfach wie du dir das vorstellst ist das nicht. Und ohne mehr ueber dein System zu wissen ist es auch schwer, da konkrete Tipps zu geben.

Wie persistierst du denn im Moment die Daten?
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Das ist es ja, noch garnicht.
Die Daten werden derzeit noch mit einer Fülldatei befüllt, in der eben Testobjekte erstellt werden.
deets

Das kannst du natuerlich auch einfach von SA-modellen aus machen. Ich wuerde das aber nicht in deine business-Objekte selbst reinpacken, sondern den ORM-layer getrennt halten.

Eine Frage die du klaeren musst: was sind natuerliche Transaktions-Grenzen? Und wie gehst du mit kritischen Sektionen um?
sprudel
User
Beiträge: 250
Registriert: Donnerstag 8. März 2007, 17:12

Den ORM-Layer getrennt.. du meinst also, ich sollte die Klassen schreiben, und das dann eben in die Produktivobjekte integrieren, richtig?

Was verstehst du unter Transaktionsgrenzen? Und kritischen Sektionen? Da hat mein Wissen leider noch Lücken :-/
deets

Ja, nicht die Produktivobjekte selbst zu persistenten Klassen machen, sondern eine extra Daten-Schicht haben. Man bekommte Schwierigkeiten mit zirkulaeren Abhaengigkeiten, die auf DB-Ebene unschoen sind, wenn man ORM-Klassen mit seinem Business-Modell vermischt.

Transaktionsgrenze - na, DBs haben (sinnvollerweise) Transationen. Wann beginnen die bei dir, und wann enden die? Und kritische Sektionen sind Dinge, die seriell ablaufen muessen. Hast du mehrere Kassen, greifen die auf gemeinsame Datenbestaende zurueck, die dann zB in ihrem Bestand verringert werden muessen, wenn etwas gekauft wird - wenn du da nicht aufpasst dann macht 1 + 1 == 1
Antworten