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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top