Datenbank oder JSON

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

Hallo zusammen,

Ich weiss nicht in welches andere Subforum diese Frage gehört, darum stelle ich es mal hier rein. Ich habe gerade angefangen eine Lernkarteikartensoftware zu programmieren. Diese soll später noch eine Webseite und Android-App bekommen. Später noch, soll man die Karteien in der Cloud speichern können und öffentlich machen für andere Benutzer. Was wäre geeigneter für die Speicherung der Karteikarten: JSON oder eine Datenbank(SQL oder NoSQL?) (oder shelve) ?

Danke im Voraus

-fail
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich denke ich würde für die Speicherung SQLite nutzen, am besten gleich via SQLAlchemy, dann kann man mit relativ geringem Einsatz eine andere DB nutzen, um die Daten in "der Cloud" zu speichern. Für den lokalen Einsatz reicht SQLite mehr als aus und die Daten scheinen ja auch strukturiert zu sein, so dass ein NoSQL-Ansatz bei dem Problem eher overkill wäre.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
h0rnung
User
Beiträge: 46
Registriert: Mittwoch 28. Mai 2014, 11:41

Kann mich nur anschliessen: SQLite3 ist sehr simpel und du findest viele Standartfunktionen perfekt dokumentiert im Netz. Falls nicht vorinstalliert, müsstest du bei Bedarf den SQLite Browser installieren.

Gruesse
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

Okay, und wie würde ich die Daten synchronisiert zwischen allen Geräten halten?(muss ich etwa bei jeder Veränderung die ganze Datenbank wieder herunterladen? )
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

fail hat geschrieben:Okay, und wie würde ich die Daten synchronisiert zwischen allen Geräten halten?(muss ich etwa bei jeder Veränderung die ganze Datenbank wieder herunterladen? )
Wenn Du keine zentrale Datenbank aufsetzen willst (ggf. mit Zugriff darauf als Webservice), kommst Du da nicht drum herum...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:Wenn Du keine zentrale Datenbank aufsetzen willst (ggf. mit Zugriff darauf als Webservice), kommst Du da nicht drum herum...
Ich würde genau das machen, *wenn* man synchronisieren muss *dann* sollte man das halt sofort mit nem Webservice machen. Ich hatte das so verstanden dass es *später* erst kommen soll und wenn man das später macht kann man derweil einfach lokal SQLite nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

Meine Idee war für jede Box(Ansammlung von Frage-Antwort-Paaren, z.B. English Box) ein Table zu machen. Aber sqlalchemy scheint eine Klasse für jedes Table zu brauchen. Gibt es eine elegante Lösung(z.B. eine Metaklasse) oder soll ich die Box zu einem Attribut(Reihe) machen, und nur ein riesiges Table haben? :K

-fail
BlackJack

@fail: Eine Tabelle pro Box wäre mit oder ohne ORM keine elegante Lösung. Tabellen und Spalten sind ”fest” und werden im Datenbankentwurf festgelegt. Variable Daten kommen nur *in* die Tabellen.

Du kannst die Box mit in die Tabelle schreiben, Du könntest aber auch zwei Tabellen anlegen: Eine für die Karten und eine für die Boxen. Eventuell sogar noch eine Tabelle die Karten und Boxen zusammenbringen, falls eine Box aus mehr als nur einer ID und den Karten besteht.
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

@Blackjack Okay, danke. Ich werde mal die Box als Attribut der Karte implementieren
Antworten