• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Datenbank -> SQLite Datenbank -> Kompletten Code umwandeln

yss

Mitglied
Hey Leute
Ich habe eine große Datenbank mit vielen Wörtern und Wortformen in meiner MySQL-Datenbank. Nun will ich die Datenbank auch Offline mit JavaScript nutzen können. Also muss ich es schaffen, die komplette Datenbank mit JavaScript in diese Offline-Datenbank (SQLite) von HTML5 zu bekommen. Gibt es da Probleme von der Form her?
 
MySQL-SQL ist nicht gleich SQLlite-SQL. Sqlite kann einiges an Funktionen nicht (z.B. md5()). Du musst also in jedem Fall deinen SQL-Code portieren.

Ein ORM wird dir dabei nicht helfen können, da JavaScript auf der Clientseite läuft. Du wirst also deine Datenbanken für SQLlite anlegen und im Online-Modus die Daten aus MySQL mit der Offline-Datenbank synchronsieren müssen.

Dein JS-App muss dabei so entworfen sein, dass sie wahlweise mit der Online-Datenbank (XHR) und dem Offline-Speicher umgehen kann.
 
Also wenn ich HTML5 richtig verstehe, dann erlaubt es, Daten im Dokument zu speichern, um Datenbankzugriffe zu minimieren. Da ist es doch völlig egal, ob man diese Daten nun aus MySql, einer SQLLite Datenbank oder aus einer sonstigen Datenquelle holt. HTML5 Datenspeicher und Datenquelle haben nichts miteinander zu tun. Ich würde zumindest versuchen, nicht unbedingt mehrere zueinander teilweise inkompatible Datenbanken unterstützen zu müssen. Wenn die Datenmenge es erlaubt, dann würde ich auf Client und Server SQLLite nutzen und wenn nicht, dann MySql.
 
Es geht hier um das zur Verfügung machen wenn der Benutzer offline ist. Es geht nicht darum Datenbankzugriff zu minimieren. Sqlite kommt auf der Server-Seite schnell an seine Grenzen. Zweigleisig zu fahren ist hier also ein MUSS!
 
Sqlite kommt auf der Server-Seite schnell an seine Grenzen.
Extrakt aus Beschreibung: SQLite usually will work great as the database engine for low to medium traffic websites (which is to say, 99.9% of all websites). Ich kann nicht beurteilen, ob deine Site zu den verbleibenden 0,1% gehört.
Zweigleisig zu fahren ist hier also ein MUSS!
Du hast noch immer nicht erklärt, warum man kein MySql auf dem Client verwenden kann.

Ich hab nun alles gesagt, was ich denke und deine Entscheidung stand ja scheinbar von Anfang an fest.
 
werd mich auch bald mit dem thema genauer beschäftigen. die frage, wie ich die sql querys verwalte habe ich mir auch schon gestellt. in jedem fall benutze ich einfache ausdrücke und lager funktionen wie md5 oder rechenoperationen immer in den php code um.

angenommen ich möchte ein system auch offline nutzen, brauche ich zwangsläufig alle daten in der clientseitigen datenbank. soviel wie ich bisher erfahren habe ist das SQL für die mysql datenbank auf dem server und für die client datenbank relativ gleich. ein weg wäre das ganze parallel laufen zu lassen und das query gleichzeitig an server und client zu schicken. im offlinemodus würden dann das sql zwischengespeichert und bei nächster gelegenheit an den server geschickt. man spart sich damit warscheinlich eine menge arbeit, die man hätte, wenn man die beiden datenbanken unterschiedlich behandeln würde. die datenbank schnittstelle würde dann entscheiden wo die daten herkommen und wo sie gespeichert werden. eine andere möglichkeit wär das entwickeln für die clientseitige datenbank mit anschließender kompletter syncronisation. -> kommt meist garnicht in frage, datenbanken wachsen manchmal schnell auf einige mb, oder hundert mb.

kann sich jemand mit der idee anfreunden?
gibt es schon module, die soetwas einfach verwalten können?

das nächst größere problem sehe ich bei anwendungen, die von meheren genutzt werden. beispielweise ein forum, eine verwalltungssoftware. die daten müssten schnellstmöglich zum server um die datenbank dort zeitnah aktuell zu halten. arbeiten 2 benutzer mit dem system, kann es vorkommen, das wichtige änderungen von user1 dem user2 erst viel zu spät zur verfügung stehen. warscheinlich kommen die daten erst beim nächsten aufruf der app/internetseite zum server, was in idr. viel zu spät ist. liegt der vorteil an der html5 datenbank bei handys an der einfacheren entwicklung der app? bis jetzt ist es ja auch möglich einfach eine datei auf dem handy abzulegen, wenn es über eine app läuft. ich sehe da im moment noch keinen anderen nutzen faktor, als die für mich leichtere entwicklung von apps. weiterhin sehe ich auch keinen nutzen für browseranwendungen. ich kann zwar die anwendung im offlinemodus nutzen. kann z.b. im flugzeug verwaltungsarbeit erledigen o.ä. in dem fall spiele ich aber nur mit mir selbst, da die änderungen eh erst bei der nächsten verbindung zum internet zum server kommen. ich könnte genauso andere arbeiten erledigen, oder mal die augen zu machen. wer zahlt geld um das gefühl zu haben online zu arbeiten? ich als programmierer würd da jedem abraten und hab auch nicht wirklich bock drauf etwas herzustellen, was keinen wirklichen nutzen hat. aufwand/nutzen.. für mich also sehr fragwürdig.


freue mich über eure gedanken/erfahrungen zu dem thema :)

@crash was meinst du genau mit zweigleistung?


EDIT: bahhh! bitte bitte behebt diesen zeilenumbruch bug mal... ich vergesse immer das richtige antwort fenster zu nutzen.
 
Vielleicht ganz interessant:

- Local Storage - Dive Into HTML5

* * *​

crash schrieb:
Dein JS-App muss dabei so entworfen sein, dass sie wahlweise mit der Online-Datenbank (XHR) und dem Offline-Speicher umgehen kann.

Ob dann auf dem Server MySQL oder SQLite zum Einsatz kommt, ist dabei egal, denn abstrahiert werden müssen die Requests sowieso. Ich nehme jedenfalls an, wir sind uns alle einig, dass es keine gute Idee ist, den Client SQL-Befehle an den Server schicken zu lassen, die dann dort ausgeführt werden.

Ich glaube, über die Frage nach dem serverseitigen DMBS lohnt es sich deshalb ohne weitere Informationen nicht zu streiten.

* * *​

NetAktiv schrieb:
Du hast noch immer nicht erklärt, warum man kein MySql auf dem Client verwenden kann.

Doch, hier:

crash schrieb:
Weil er sicher eine Webapp für jedermann hat und diese auch Offline verfügbar sein soll.

* * *​

FoXMorayn schrieb:
ein weg wäre das ganze parallel laufen zu lassen und das query gleichzeitig an server und client zu schicken. im offlinemodus würden dann das sql zwischengespeichert und bei nächster gelegenheit an den server geschickt.

Wie willst du denn dann offline damit arbeiten, wenn die Query erst dann abgeschickt wird, wenn du wieder online bist?

kann z.b. im flugzeug verwaltungsarbeit erledigen o.ä. in dem fall spiele ich aber nur mit mir selbst, da die änderungen eh erst bei der nächsten verbindung zum internet zum server kommen.

Ich kann irgendwie das Argument des gesamten Abschnitts nicht nachvollziehen. Aber speziell bei diesem Satz ist der Gewinn, dass die Arbeit erledigt ist, sobald du wieder online bist und deine Daten synchronisiert hast.

Es geht primär darum, eine Web-Anwendung auch offline nutzbar machen zu können. Dass das für Foren relativ zweckfrei ist (abgesehen vielleicht davon, lokal gespeicherte Posts auch offline lesen zu können), ist klar. Aber für eine Terminverwaltung, einen Feedreader oder sowas wie Google Docs sieht das anders aus.

@crash was meinst du genau mit zweigleistung?

Zwei-gleisig.
 
wer ölesen kann ist klar im vorteil^^

Wie willst du denn dann offline damit arbeiten, wenn die Query erst dann abgeschickt wird, wenn du wieder online bist?
der gedanke hinter dem was ich beschrieben habe ist, das query einmal an den server zu schicken und gleichzeitig auch an den client. arbeitet man jetzt offline, wird das query beim client ausgeführt, abgepspeichert und bei der nächsten verbindung an den server geschickt.

hast recht, für eine data cloud ist das ganze sehr interesannt.
 
Zurück
Oben