Domanda

Diciamo che ho una base di dati di prenotazione che consiste di Utenti :

user_id
fname
lname

e la loro biglietti

ticket_id
user_id
flight_no

e associati voli

flight_no
airline
departure_time
arrival_time

Che cosa avrei bisogno di cambiare per spostare questo Google AppEngine?

Capisco AppEngine non consente unisce .

Questo significa che il mio tavolo dovrebbe diventare un unico grande schmudge dei campi tutti ammassati insieme?

prenotazioni :

user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time

In altre parole, tutte le mie domande ora corsa contro la stessa tabella?

È stato utile?

Soluzione

Ciò che cambia è necessario dipende soprattutto quali query è necessario eseguire, non su ciò che i dati che avete. Molto probabilmente si avrà solo aggiungere un paio di cose.

Fare una lista di domande e poi dare un'occhiata a restrizioni query . Dopo aver trovato le problematiche, cercare di riscriverle con i vincoli di BigTable in mente.

Per esempio, se avete spesso bisogno di trovare il numero di biglietti per una lista di voli, non sarà solo in grado di fare:

SELECT
    flight_no, COUNT(*)
FROM
    flights
JOIN
    tickets ON tickets.flight_no = flights.flight_no
GROUP BY
    flight_no

Quindi, è necessario aggiungere un contatore di biglietti per flights e incremento / decremento che durante la creazione / eliminazione di biglietti.

Buona parte di questo è che le forze BigTable di avere una progettazione di database molto scalabile. lato negativo è che spreca un sacco di tempo in cui non si ha realmente necessità un design scalabile.

Altri suggerimenti

È possibile utilizzare SQL database relazionali genuini app AppEngine di Google, attraverso un webservice.

Una tale webservice è Rdbhost, a http://www.rdbhost.com .

Si tratta di suoi compromessi, in particolare di velocità, dal fatto che ogni visualizzazione della pagina richiede un'altra richiesta di pagina http back-end per il server db, ma consente di utilizzare le conoscenze di progettazione di SQL che già avete.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top