Ich frage mich welche Datenbankschnittstelle für mich die richtige für mich ist.
Ich suche eine Datenbank zur Speicherung von Daten aus kleineren Projekten. Eigentlich hatte ich sqlite im Auge aber mich stört, dass es keine foreign keys gibt. Eigentlich braucht man die doch ständig, wie kommen soviele Leute ohne aus? Verlassen die sich einfach darauf, dass die Daten stimmen?
Wenn man zb mehrere Exemplare eines Buches hat, hat man doch schon 2 Tabellen,eine davon mit einem foreign key.
Welche db würdet ihr mir empfehlen? Ein seperat laufender Server wäre etwas overkill da finde ich die sqlite Lösung besser. Auch Tipps zu sqlite sind willkommen schließlich kommen viele ja auch damit aus.
Welche Datenbankschnittstelle?
Benötigst du denn einen Constraint? (Oder besser gefragt, ist dir der Unterschied zwischen einem Constraint und einem normalen Feld überhaupt klar).cos4 hat geschrieben:Aber sie haben dann keine Wirkung oder?
Bei einer übersichtlichen Datenstruktur ist doch das Fehlen der Constraints überhaupt kein Probelm. Du hast halt keine automatischen UPDATE und DELETE Kaskadierungen, aber das kann man ja auch manuell implementieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das kannst du ja so oder so, egal ob du Foreign Key Constraints hast oder nicht.cos4 hat geschrieben:Sonst kann ich doch durch verborgene programmierfehler inkosistente dbs erzeugen.
Ich bin grad dabei SQL-Kram aufzugeben und in die Key/Value-Welt abzuwandern

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bei einer einfachen Datenstruktur und mit ein bisschen Nachdenken sollte das halt dann nicht passierencos4 hat geschrieben:Ich brauche das ha letztlich vor allem um sicher sein zu können, dass die Datensätze stimmen. Sonst kann ich doch durch verborgene programmierfehler inkosistente dbs erzeugen.

- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo cos4!cos4 hat geschrieben:Ich brauche das ha letztlich vor allem um sicher sein zu können, dass die Datensätze stimmen. Sonst kann ich doch durch verborgene programmierfehler inkosistente dbs erzeugen.
Wenn die Datenbank komplexer werden sollte und du die Aufgabe der Validierung mehr der Datenbank überlassen möchtest, dann musst du ein Datenbankmanagementsystem wie z.B. PostgreSQL benutzen.
Wenn du Daten in einer Datenbankdatei abspeichern möchtest, die die Möglichkeit bietet, darauf per SQL zuzugreifen, dann nimm SQLite. Was ich damit sagen möchte: Du musst auf Fremdschlüssel verzichten, wenn du SQLite verwenden möchtest. Du musst auf einfache Verteilbarkeit verzichten, wenn du PostgreSQL verwenden möchtest.
Ich handhabe das so:
Für Client-Server-Anwendungen nehme ich PostgreSQL. Das ist ideal dafür geeignet. Kann mit vielen gleichzeitigen Verbindungen sehr gut umgehen und kümmert sich darum, dass nur gewünschte Personen auf gewisse Daten zugreifen können. Mit dieser Datenbank habe ich alles was mein Datenbankprogrammierer-Herz begehrt.
Wenn ich ein performantes Speicherformat für Desktopanwendungen (z.B. Rezepteverwaltung, lokale Adressendatenbank, ...) benötige, das sehr gut nach Daten durchsucht werden kann und gut von Client zu Client ausgetauscht werden kann, dann nehme ich SQLite -- mit der Einschränkung, dass SQLite keine Fremdschlüssel kann.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Danke. Dann werde ich wohl sqlite nehmen. Habe noch gesehen, dass man sowas ähnliches wie fks wohl mit triggern machen kann, dazu gibts sogar nen Codegenerator
http://rcs-comp.com/site/index.php/view ... _generator
http://rcs-comp.com/site/index.php/view ... _generator