¿Qué cambios necesito para mis tablas para trabajar en BigTable de App Engine?
-
06-09-2019 - |
Pregunta
Vamos a decir que tengo una base de datos de reserva que consiste en usuarios
user_id
fname
lname
y su entradas
ticket_id
user_id
flight_no
y asociados vuelos
flight_no
airline
departure_time
arrival_time
¿Qué necesitaría cambiar para mover este Google App Engine?
entiendo AppEngine no permite que se une .
¿Eso significa que mi mesa se convierta en uno grande schmudge de todos los campos agrupados?
reservas
user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time
En otras palabras, todas mis consultas ahora se ejecutan en la misma tabla?
Solución
Lo que cambia lo que necesita depende principalmente de qué consultas que necesita para funcionar, y no en los datos que tienes. Lo más probable es que sólo tendrá que añadir un par de cosas.
Haga una lista de preguntas y luego echar un vistazo a restricciones en consultas . Después de que haya encontrado las problemáticas, intente volver a escribir con las limitaciones de BigTable en mente.
Por ejemplo, si usted a menudo necesita encontrar el número de entradas para un listado de vuelos, usted no sólo ser capaz de hacer:
SELECT flight_no, COUNT(*) FROM flights JOIN tickets ON tickets.flight_no = flights.flight_no GROUP BY flight_no
Por lo que tendrá que añadir un contador de entradas para flights
y el incremento / decremento que al crear / borrar entradas.
Buena parte de esto es que BigTable obliga a tener un diseño de base de datos muy escalable. Lo malo es que se desperdicia una gran cantidad de su tiempo en que no se sabe muy necesidad un diseño escalable.
Otros consejos
Puede utilizar genuinos SQL bases de datos relacionales de aplicaciones de App Engine de Google, a través de un servicio web.
Uno de tales servicio web es Rdbhost, en http://www.rdbhost.com .
Se trata de sus compromisos, en particular la velocidad, en la que cada vista de página requiere otra solicitud de la página http al servidor backend db, pero le permite utilizar los conocimientos de diseño de SQL que ya tiene.