Welche Änderungen muss ich für meine Tabellen auf AppEngine BigTable arbeiten?
-
06-09-2019 - |
Frage
Lassen Sie uns sagen, dass ich eine Buchung Datenbank, bestehend aus Nutzer :
user_id
fname
lname
und ihre Karten
ticket_id
user_id
flight_no
und zugehörige Flüge
flight_no
airline
departure_time
arrival_time
Was würde ich ändern müssen diese Google App Engine zu bewegen?
Ich verstehe AppEngine nicht erlaubt verbindet .
Ist, dass meine Tabelle bedeuten sollte eine große schmudge von Feldern zusammen alle in einen Topf geworfen werden?
Buchungen :
user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time
Mit anderen Worten, alle meine Fragen jetzt laufen gegen den gleichen Tisch?
Lösung
Was ändert Sie benötigen, hängt vor allem ab, was fragt Sie laufen müssen, nicht auf welche Daten Sie haben. Höchstwahrscheinlich werden Sie nur ein paar Dinge hinzuzufügen haben.
Machen Sie eine Liste von Abfragen und nehmen dann einen Blick auf Einschränkungen für Abfragen . Nachdem Sie die problematischen gefunden haben, versuchen, sie im Auge mit BigTable der Einschränkungen neu zu schreiben.
Zum Beispiel, wenn Sie häufig die Anzahl der Ticket für eine Liste der Flüge finden müssen, werden Sie nicht nur in der Lage sein zu tun:
SELECT flight_no, COUNT(*) FROM flights JOIN tickets ON tickets.flight_no = flights.flight_no GROUP BY flight_no
So benötigen Sie einen Zähler für die Karten in der flights
und Erhöhen / Verringern dass beim Erstellen / Löschen von Karten.
Gute Seite davon ist, dass BigTable zwingt Sie ein sehr skalierbare Datenbank-Design haben. Bad Seite ist, dass es eine Menge Zeit verschwendet, wenn Sie nicht wirklich Notwendigkeit ein skalierbares Design.
Andere Tipps
Sie echte relationale SQL-Datenbanken von Google appengine Apps nutzen können, durch einen Webservice.
Ein solcher Webservice ist Rdbhost, unter http://www.rdbhost.com .
Es geht um seine Kompromisse, insbesondere Geschwindigkeit, dass jede Seite Ansicht erfordert auf dem DB-Server eine andere Backend-http-Seite Anfrage, aber es können Sie die SQL-Design Wissen nutzen, die Sie bereits haben.