Datenbank für C++
-
Hallo,
ich brauche für meine Applikation eine Datenbank, allerdings gibt es ja unzählige Datenbanken und da wollte ich mal wissen, was ihr so verwendet/empfehlen könnt.
Ich habe gewisse Wunschanfoderungen, interessiere mich aber auch für Datenbanken, die diesen Anfoderungen nicht 100% entsprechen (schließlich möchte ich vlt. zu einer späterem zeitpunkt in einer Applikation mit anderen Anfoderungen vlt. eine andere nehmen).
- NoSQL
- Json support
- local + server
- Local sollte auf allen gängigen Betriebsystemen inklusive iOS + Android laufen (Im besten Fall cross plattform, daher selber code für alle plattformen ... ist das überhaupt realistisch, dass der selbe Code für die lokale Datenbank für iOS/Android + Linux/Windows/Mac Os läuft?)
- multi client betrieb
- evtl. funktionen, die es erleichtern, die Datenbanken lokal und auf dem server abzugleichen? Sodass eben eine offline version möglich ist
- Im besten Fall eine (moderne) C++ Api, zur Not tuts aber natürlich auch C
- Datenbank sollte eine Zukunft haben Kleine github Projekte, die im besten Fall dann auch noch seit 5 Jahren eingestellt sind, wären eher suboptimal
- kostenlos ... im besten Fall auch für kommerzielle Nutzung
Ich erwarte schon, dass es keine Datenbank gibt, die alle Anfoderungen erfüllt, aber vlt. gibt es ja eine, die dem nahe kommt.
Wäre nett, wenn ihr mal erzählen könntet, was für Erfahrungen ihr schon mit den vielen verschiedenen Datenbanken hattet und inwiefern sie meine Anfoderungen erfüllen/nicht erfüllen und wie es allgemein war damit zu arbeiten (API, Dokumentation etc.)
Danke
-
NoSQL
Das ist wie beim Brexit: man weiß, was man nicht will, man weiß aber nicht, was man will.
Json support
Strings kann man immer speichern. Was genau erwartest du?
-
Das ist wie beim Brexit: man weiß, was man nicht will, man weiß aber nicht, was man will.
Oder eine weitere Ähnlichkeit: Das eine hatte ich schon, will mal was anderes ausprobieren. SQL Datenbanken hatte ich in der Schule mit Java und habe ich privat mit C++ mal ausprobiert ... glaube das war MySQL. Da NoSQL Datenbanken im Trend sind, wollte ich da eben mal eine nutzen, falls es möglich ist. Performance is in meinem Hobby/Lernprojekt nicht Priorität.
Kann auch für die Arbeit später nicht schaden mit beidem ein bisschen Erfahrung zu haben.Strings kann man immer speichern. Was genau erwartest du?
Vermutlich meinte ich eher, dass die Datenbank mit json arbeitet wie es z.B. bei mongoDb der Fall ist. Das json dateiformat gefällt mir ganz gut und würde ich auch gerne nutzen. Konkrete Vorteile erhoffe ich mir dadurch nicht. Sind ja wie gesagt nur "Wunschkriterien".
Wenn es heißt, mongo Db und ähnliches kann man wegen C++ Support oder anderen Gründen in die Tonne klopfen, finde ich mich auch damit ab, was anderes zu nutzen
-
@Leon0402 sagte in Datenbank für C++:
Da NoSQL Datenbanken im Trend sind
So etwas hatte ich befürchtet. Viele NoSql-Datenbanken rüsten übrigens gerade Sql nach.
Kann auch für die Arbeit später nicht schaden mit beidem ein bisschen Erfahrung zu haben.
Ich will mal etwas anderes als Kartoffeln essen. Dann habe ich beides probiert. Merkst du etwas?
Strings kann man immer speichern. Was genau erwartest du?
Vermutlich meinte ich eher, dass die Datenbank mit json arbeitet wie es z.B. bei mongoDb der Fall ist. Das json dateiformat gefällt mir ganz gut und würde ich auch gerne nutzen. Konkrete Vorteile erhoffe ich mir dadurch nicht.
Du weißt also nicht wirklich, welche Anforderungen du hast.
Da du Ios und Android und lokal nennst, fällt mir nur SqLite ein. Wobei ich nicht weiß, ob das aktuell noch unterstützt wird.
-
So etwas hatte ich befürchtet. Viele NoSql-Datenbanken rüsten übrigens gerade Sql nach.
Vielleicht wieder etwas klarer, die Datenbank darf gerne SQL haben (NoSql bedeutet ja auch nur "Not only SQL). Ich bezog mich vor allem darauf, dass ich gerne eine nicht relationale Datenbank benutzen würde
Ich will mal etwas anderes als Kartoffeln essen. Dann habe ich beides probiert. Merkst du etwas?
Ich denke die Kategorien "relational" und "nicht relational" sind durchaus valide. Genaus wie man vlt. auch sagen könnte ich möchte mal eine OOP Programmiersprache lernen (vorher hatte ich nur ne funktionale getestet), damit ich damit eben auch mal ne Erfahrung gesammelt haben.
Natürlich gibt es dann immer noch einen Unterschied, ob ich mich für die OP Sprache für java oder für C++ entscheide etc. ... aber um mal ein grobes Verständnis bekommen, was OOP vlt. ist, was der Vorteil davon ist, warum Firmen immer öfters dazu gegriffen haben/greifen etc. ist doch valide.Ansonsten bin ich irgendwann in einem Projekt und es geht um die Entscheidung, ob relational oder nicht relational und ich kann nichts dazu beitragen, da ich nur eine Seite kenne und die Gegenseite Argumente liefern, die ich weder bezeugen noch entkräften kann.
Edit: Wie ich bereits sagte, mich würden vor allem persönliche Erfahrungen interessieren mit den Datenbanken. Daher auch solche, die meine dann doch recht speziellen Wunschkriterien nicht erfüllen. Welche Datenbank verwendest du z.B. oft/gerne?
-
@Leon0402 sagte in Datenbank für C++:
mich würden vor allem persönliche Erfahrungen interessieren mit den Datenbanken.
Mich hat noch keine NoSql Datenbank überzeugt.
-
Genaus wie man vlt. auch sagen könnte ich möchte mal eine OOP Programmiersprache lernen (vorher hatte ich nur ne funktionale getestet),
Das ist aber eben nicht genauso. Genauso wäre: ich möchte mal eine nicht funktionale Programmiersprache lernen.
Ich denke die Kategorien "relational" und "nicht relational" sind durchaus valide.
Nein!
-
@Mechanics sagte in Datenbank für C++:
Mich hat noch keine NoSql Datenbank überzeugt.
Welche hast du denn bisher ausprobiert (mit C++?). Was für Probleme gab es denn oder wieso hat es dich nicht überzeugt?
Das ist aber eben nicht genauso. Genauso wäre: ich möchte mal eine nicht funktionale Programmiersprache lernen.
Okay dann möchte ich mal eine nicht funktionale Programmiersprache lernen. Offensichtlich sind die Unterschiede zwischen NoSQL Datenbanken größer als ich vermutet hatte ... woraus natürlich nicht der Eindruck entsteht, wenn man immer nur Artikel, Fragen etc. list über angebliche Vorteile/Nachteile von SQL und NoSQL Datenbanken. Dann sagen wir, ich möchte einfach mal eine Datenbank ausprobieren, die nicht relational ist. Um mal eins der vielen anderen Konzepte auszuprobieren.
-
@Leon0402 sagte in Datenbank für C++:
Welche hast du denn bisher ausprobiert (mit C++?). [...]
Was hat NoSQL mit C++ zutun?!
-
@manni66 sagte in Datenbank für C++:
Json support
Strings kann man immer speichern. Was genau erwartest du?
Ich weiß zwar nicht, ob Leon das reichen würde, aber PostgreSQL hat zum Beispiel json-Support in folgender Form: https://www.postgresql.org/docs/current/functions-json.html
Gut, ob das auf Android läuft...
-
Was hat NoSQL mit C++ zutun?!
Es hat was mit seiner Erfahrung zu tun. Jede Datenbank hat Anbindung in verschiedenen Sprachen und C++ gehört nicht grade zu den Sprachen, die als aller erstes unterstützt werden (vor allem nicht unter den NoSql Datenbanken). Manchmal gibt es auch gar keine C++ Anbindung, sondern nur eine C Anbindung ... das Interface kann zumindest meiner Meinung nach stark beeinflussen, ob einen eine Datenbank überzeugt.
-
@wob Jap das wäre durchaus interessant!
PostgreSql habe ich mir sogar angeguckt, ich habe sogar einen C++ Anbindung dafür gefunden, allerdings war die aus einer älteren Dokumentation. In der aller neusten konnte ich davon nix mehr finden, vlt. habe ich es aber auch nur einfach übersehen.Mit dem Android ist so eine Sache. Ist es überhaupt möglich/realistisch, dass die selbe Datenbank (lokal, nicht auf einem server) auf mobil und Computer läuft?
Hab öfters gelesen, dass es mobile Varianten gibt z.B. Mongo Db mobile ... allerdings hatte ich mich da schon gefragt, inwiefern das einfach ein zweites Produkt wäre.
Ziel wäre möglichst eine Code Basis zu haben für jede Plattform ... Bei der Oberfläche ist ja allgemein bekannt, dass das kritisch sein könnte (laut Qt aber möglich, wenn man nicht gerade irgendwelche speziellen Funktionen vom Gerät selbst braucht, was nicht der Fall sein sollte) ... aber selbst wenn nicht, könnte zumindest der core cross platform sein. Ich habe allerdings so eine Vermutung, dass Datenbank da das andere kritische Thema ist.
-
@wob sagte in Datenbank für C++:
@manni66 sagte in Datenbank für C++:
Json support
Strings kann man immer speichern. Was genau erwartest du?
Ich weiß zwar nicht, ob Leon das reichen würde, aber PostgreSQL hat zum Beispiel json-Support in folgender Form: https://www.postgresql.org/docs/current/functions-json.html
Gut, ob das auf Android läuft...
SQLite hätte eine JSON Extension: https://sqlite.com/json1.html
Und das könnte man dann auf Android verwenden. Allerdings ist das nicht wirklich NoSQL.@Leon0402 Wähle eine Datenbank gemäss deinen Anforderungen an des Speichersystems aus. Eine nicht relationale Datenbank ist nicht eine Alternative für eine relationale Datenbank. NoSQL Datenbanken sind spezialisierte Werkzeuge für spezielle Fälle. Es gab eine Zeit lang einen Hype und es gab viele mit der irrigen Annahme, dass man nun alle SQL Datenbanken durch NoSQL Datenbanken ersetzen sollte. Aber das war gar nie wirklich die Idee. Für den allgemeinen Fall ist eine SQL Datenbank deutlich geeigneter.
In den weitaus meisten Fällen, wo ich NoSQL Datenbanken in Verwendung sah, war es eine Fehlentscheidung. Sogar dieses Forum baut auf der MongoDB auf, was eine absolute Fehlentscheidung der Entwickler war. Die bauen nun eine relationale Datenbank in der MongoDB nach. Es ist völlig idiotisch.
Haben deine Objekte, welche du speichern möchtest, relationen zueinander, dann greife zu einer relationalen Datenbank.
@Leon0402 sagte in Datenbank für C++:
Manchmal gibt es auch gar keine C++ Anbindung, sondern nur eine C Anbindung ... das Interface kann zumindest meiner Meinung nach stark beeinflussen, ob einen eine Datenbank überzeugt.
Das entspricht gar nicht meiner Erfahrung. Das Interface ist üblicherweise zwischen allen Sprachen sehr ähnlich gehalten. Und SQL Datenbank sind sogar untereinander meistens sehr ähnlich in der Schnittstelle. Bist du sicher, dass du da nicht eher ORMs meinst?
-
Wähle eine Datenbank gemäss deinen Anforderungen an des Speichersystems aus
Da gebe ich dir grundsätzlich absolut recht, allerdings ist wie gesagt nicht das primäre Ziel eine Datenbank zu finden, die sich perfekt für mein Projekt eignet (daher die beste performance etc. mit sich bringt), sondern mal etwas anderes auszuprobieren. Und wenn dabei die Erfahrung rauskommt, dass es nicht optimal war, weil es z.B. eine NoSQL Datenbank war (oder auch aus irgendwelchen anderen Gründen), dann ist das eine gute Erfahrung gewesen. Es gibt dann auch immer die Option, nochmal die Datenbank zu wechseln.
Viel mehr möchte ich vermeiden, dass ich später mal in einem richtigen Projekt sitze und es genau um diese Frage geht. welche Datenbank. Irgendjemand sagt dann, lasst uns MongoDb nutzen, das ist der neuste Scheiß und alle großen Firmen setzen daraus ... außerdem viel schneller, flexibler was weiß ich nicht. Würde ich dann sowas entgegenbringne wieFür den allgemeinen Fall ist eine SQL Datenbank deutlich geeigneter.
würde es vermutlich nur heißen, ich wäre konservativ
Und dann merkt man vlt. während des Projektes, dass SQL wirklich besser gewesen wäre ... naja aber dann ist zu spät, dann steckt Geld, Zeit und ein größeres Team dahinter ... ein Umschreiben auf SQL ist dann vermutlich eher nicht mehr möglich.
Ich finde es schadet nicht, auch mal was neues auszuprobieren und mehr als nur eine Seite der Medaille zu kennen.
Aber tatsächlich würd es zunächst wohl erstmal gar keine Relationen geben, später vlt. mal wenige. Was es dafür aber geben wird, sind Objekte mit std::optional membern und soweit ich das verstanden habe, kann eine NoSQL Datenbank oft mit sowas ganz gut umgehen und bietet mehr Flexibilität.
Das entspricht gar nicht meiner Erfahrung. Das Interface ist üblicherweise zwischen allen Sprachen sehr ähnlich gehalten. Und SQL Datenbank sind sogar untereinander meistens sehr ähnlich in der Schnittstelle. Bist du sicher, dass du da nicht eher ORMs meinst?
Erfahrung habe ich damit keine, aber es ist etwas, was ich mir vorstellen könnte aus verschiedenen Gründen. Hauptgrund könnte z.B. sein, wenn es gar kein C++ Interface gibt, sondern nur ein C Interface ... Mit C interfaces zu arbeiten ist halt einfach was anderes
Oder wenn man sowas sieht:using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_document;
Bei so vielen geschachtelten Namespaces, vergeht einem ja schon irgendwie die Lust.
Und dann haben Sprachen ja auch unterschiedliche Sprachkonstrukte z.B. kann man bei Node.js json direkt verwenden ohne extra lib etc.
Aber ja auch z.B. odm würde ich sehr interessant finden ... ohne reflection ist der Spaß da aber vermutlich in C++ auch nur sehr begrenzt ... oder eben auch ORMs.
Hat damit eig irgendjemand Erfahrung?
-
@Leon0402 sagte in Datenbank für C++:
Viel mehr möchte ich vermeiden, dass ich später mal in einem richtigen Projekt sitze und es genau um diese Frage geht. welche Datenbank. Irgendjemand sagt dann, lasst uns MongoDb nutzen, das ist der neuste Scheiß und alle großen Firmen setzen daraus ... außerdem viel schneller, flexibler was weiß ich nicht. Würde ich dann sowas entgegenbringne wie
Für den allgemeinen Fall ist eine SQL Datenbank deutlich geeigneter.
würde es vermutlich nur heißen, ich wäre konservativ
Meine Meinung nach ist es sowieso verloren, wenn die Firma so oberflächlich ihr Speichersystem auswählt. Wenn eine neue Technologie als Ersatz gebracht wird, dann sollten diese gegeneinander beleuchtet werden.
Das Problem ist halt, wenn deine Applikation nicht für eine nicht-relationale Datenbank geeignet ist, dann wirst du auch gar nicht richtig erleben, was es heisst, eine nicht-relationale Datenbank einzusetzen. Was womöglich eher passieren wird, ist, dass du probierst eine relationale Datenbank in einer nicht-relationalen Datenbank abzubilden. Das ist möglich, aber es ist Unsinn.
Aber mal von all dem abgesehen. Ich kenne keine NoSQL Datenbank, welche deinen Anforderungen entsprechen würde. Die meisten NoSQL Datenbanken sind für Server gedacht, weil einer der grossen Vorteile dieser Datenbanken ist, dass man sie einfacher hochskalieren kann. Das ist nicht unbedingt etwas, was man lokal auf einem Android Gerät benötigt.
Wenn man NoSQL einfach nur als Document-Storage oder Key-Value-Storage ansieht, dann kannst du wirklich zu einer SQLite Datenbank mit der JSON Extension greifen. Erstellst dir einfach jeweils Tabellen bestehend aus zwei Spalten von Typ String: Key, Value. Einfach nie Werte zueinander referenzieren. Das kannst du dann überall verwenden. Zur Synchronisation kannst du dann auch einfach die SQLite Datei kopieren.
-
Letzendes möchte ich die Datenbank eig auch hauptsächlich auf einem Server benutzen, es geht nur darum eine offline Benutzung zu ermöglichen.
Vorgestellt habe ich mir das ganze in etwa so:Der Benutzer hat seine eigenen Daten in seiner lokalen Datenbank und kann (optional) seine Daten auf dem server speichern und über dort auch mit anderen leuten teilen. Für die Daten, die also auf dem Server liegen sollen (für teilen oder einfach nur als backup) soll dann bei start der Applikation das ganze mit dem lokalen gesynct werden, sofern Internet zur Verfügung steht.
Und mangels Erfahrung mit Datenbanken, habe ich mir hier die Frage gestellt, inwiefern die Datenbank dafür support bieten müssen (z.B. für das syncen?). Ob man hier evtl. sogar zu zwei verschiedenen Datenbanken greifen muss? Eine die für server gedacht ist und eine die für lokal geeignet ist?
@Dravere Was ist denn deiner Meinung nach der perfekte use case für eine NoSql Datenbank? Einfach nur "keine relationen zwischen den Objekten" ... das halte ich für etwas unwahrscheinlich, dass das so ot vorkommt ... und irgendeinen Grund muss es ja geben, dass so viele große Firmen oft genug zu Mongo Db etc. greifen.
-
@Leon0402 sagte in Datenbank für C++:
@Mechanics sagte in Datenbank für C++:
Mich hat noch keine NoSql Datenbank überzeugt.
Welche hast du denn bisher ausprobiert (mit C++?). Was für Probleme gab es denn oder wieso hat es dich nicht überzeugt?
Dravere hat es im Grunde schon ganz gut beschrieben.
Immer, wenn ich mir gedacht habe, ich hätte einen Fall, wo ich vielleicht mit einer NoSql Datenbank besser dran wäre, habe ich es mir dann genauer angeschaut (hab mir schon alle möglichen angeschaut), und dann haben die alle doch nicht so wirklich gepasst. Und dann kommt auch dazu, dass Performance für mich eigentlich fast immer ein Argument ist, und schnell sind die meisten dieser Datenbanken nicht, nur evt. einfacher skalierbar.
Ich setz höchstens ab und zu key-value store Datenbanken für einfache Fälle ein, aber dann hab ich meist auch quasi gar keine Anforderungen an das System.
-
@Leon0402 sagte in Datenbank für C++:
Und mangels Erfahrung mit Datenbanken, habe ich mir hier die Frage gestellt, inwiefern die Datenbank dafür support bieten müssen (z.B. für das syncen?). Ob man hier evtl. sogar zu zwei verschiedenen Datenbanken greifen muss? Eine die für server gedacht ist und eine die für lokal geeignet ist?
Aber dann willst du ja nicht die ganze Datenbank synchronisieren sondern nur einen Teil. Weil die Datenbank auf dem Server wird ja wohl die Daten aller Benutzer enthalten, während du auf dem Gerät nur die Daten eines Nutzer möchtest. Das führt auch dazu, dass du unterschiedliche Schemas haben wirst. Es kann sogar soweit gehen, dass es womöglich sinnvoller sein könnte, die Daten lokal auf dem Gerät einfach als eine JSON-Datei oder ähnliches zu speichern. Sich hier auf eine einzige Datenbank probiere zu beschränken, halte ich für keinen guten Ansatz.
@Dravere Was ist denn deiner Meinung nach der perfekte use case für eine NoSql Datenbank? Einfach nur "keine relationen zwischen den Objekten" ... das halte ich für etwas unwahrscheinlich, dass das so ot vorkommt ... und irgendeinen Grund muss es ja geben, dass so viele große Firmen oft genug zu Mongo Db etc. greifen.
Caches sind meiner Meinung nach einer der sehr schönen Anwendung von NoSQL Datenbanken. Sehr bekannt dafür ist Redis (z.B. als HTTP Cache). Somit hast du eine NoSQL vor einer SQL Datenbank, um die SQL Datenbank zu entlasten. Beide arbeiten zusammen.
Eine andere Anwendung wäre Big Data. Wenn du z.B. tausende Sensoren hast, welche alle Daten sammeln und diese an eine Datenbank zur Auswertung schicken sollen. Das skaliert dann auch schön und du kannst zahlreiche weitere Datenbanken starten, um entweder mehr hochladen zu können oder die Auswertung zu beschleunigen.
-
Ich hatte nicht vermutet, dass das Schema groß anders sein sollte. Das ist übrigend auch die einzige Relation, die ich im Kopf erstmal hatte (User zu Daten).
Quasi
{
name: „Max Mustermann“
...
Daten: [
Foo1 {},
Foo2 {}
...
]
}Das einzige, was auf dem server anders wäre, wäre das mann mehr als nur eine json datei für den Benutzer hat
Das müsste dann doch trotzdem das selbe Schema sein ... in SQL zwei tabellen ... eine für Benutzer ... eine für Daten (Die Daten sind übrigens gleich aufgebaut).Über die Möglichkeit einfach gar keine Datenbank für lokal zu haben, habe ich übrigens auch schon nachgedacht.
Die Idee die Daten einfach nur als jsons zu speichern kam mir dabei in den Sinn. Allerdings wusste ich nicht inwiefern das eine gute Idee ist bzw. wann man das machen kann oder wann man lieber zur Datenbank greiftHab mal ein bisschen auf der SQL Lite Seite rumgelesen. Klingt ganz interessant, wohl sehr lightweight und damit auch für mobil sehr geignet. Sie sagen selbst, dass SqlLite nicht für Server in der Regel geeignet ist.
Eine Überlegung von mir wäre Sql Lite lokal zu nehmen mit der json erweiterung. Beim syncen dann die ganze Daten als json direkt auf den server schicken (Qt bietet das soweit ich weiß an ... glaube dann als byte stream oder so?). Und auf dem server eben eine die json dann wieder einzuspielen
-
Nach ein bisschen rumprobieren und rumlesen, wird es vermutlich für die lokale Datenbank SqlLite werden, das scheint wohl zurzeit einer der besten Datenbanken zu sein für lokale Anwendung, da es performant ist und auf allen Plattformen (vor allem eben auch mobil) läuft.
Die Frage wäre hier allerdings, welche Variante von SqlLite. An sich wird ja erstmal nur eine C api geboten. Hab diese mal ausprobiert und Spaß macht das wirklich wenig
Hier würden mir verschiedene Möglichkeiten einfallen, dass ganze etwas angenehmer zu machen.
Möglichkeit 1: Selbst einen C++ Wrapper schreiben -> Damit könnte man die C Api vermutlich etwas einfacher in der Benutzung machen (z.B. mit Hilfe von Destruktoren ^^)
Möglichkeit 2: Einen vorhandenen C++ Wrapper nehmen
- https://github.com/fnc12/sqlite_orm
-> Die sieht ganz nett aus, orm, header-only mit ein paar nützlichen extra features - https://doc.qt.io/qt-5/qtsql-index.html
-> Qt Wrapper (kann u.a. für SqlLite verwendet werden) ... Vorteil hier wäre, dass es z.B. model klassen bietet, was ganz praktisch wäre, da die gui auch Qt verwendet.
Möglichkeit 3: NoSql Datenbank lite version nehmen
Einige NoSql Datenbanken z.B. Mongo Db, Couchbase bieten mobile Varianten an. Diese bauen überraschenderweise auf sqlLite auf. Das Problem hier nur ist, dass C++ zwar intern von allen Datenbanken immer verwendet wird, aber dennoch selten eine richtige C++ API zur Verfügung steht.
- https://github.com/couchbaselabs/couchbase-lite-C
-> Sieht ganz nett aus, C Api mit C++ Wrapper. Problem hierbei ist jedoch, dass das Projekt noch in der Beta Phase ist. Zurzeit gibt es z.B. noch keinen support für android. Auch die Dokumentation lässt zu wünschen übrig insgesamt. Es ist jedoch recht wahrscheinlich, dass das Projekt schnell Fortschritt macht (da die C lib selbst auch nur ein wrapper ist ... der core z.B. unterstützt android bereits etc.)
@Dravere Wie das json modul in C verwendet wird habe ich allerdings nicht verstanden ^^ Konnte es linken etc. aber dann wusste ich nicht wie man diese Befehle verwenden soll.
- https://github.com/fnc12/sqlite_orm