Pergunta

Digamos que eu tenho um banco de dados de reserva consistindo em usuários :

user_id
fname
lname

e seus bilhetes

ticket_id
user_id
flight_no

e associados Vôos

flight_no
airline
departure_time
arrival_time

O que eu preciso mudar para mover este Google AppEngine?

Eu entendo AppEngine não permite que se junta .

Isso quer dizer minha mesa deve tornar-se um grande schmudge de campos todos agrupados?

reservas :

user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time

Em outras palavras, todos os meus consultas agora correr contra a mesma tabela?

Foi útil?

Solução

O que muda você precisa depende principalmente de quais consultas você precisa correr, não sobre os dados que você tem. O mais provável é que você só terá que adicionar um par de coisas.

Faça uma lista de consultas e, em seguida, dar uma olhada restrições em consultas . Depois de ter encontrado os problemáticos, tente reescrevê-los com restrições de BigTable em mente.

Por exemplo, se você muitas vezes precisa encontrar o número de bilhetes para uma lista de voos, você não vai apenas ser capaz de fazer:

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

Então, você precisa adicionar um contador de bilhetes para flights e aumentar / diminuir que ao criar / apagar bilhetes.

Boa parte disso é que BigTable obriga a ter um design de banco de dados muito escalável. Bad lado é que ele desperdiça muito do seu tempo quando você realmente não necessidade um design escalável.

Outras dicas

Você pode usar bancos de dados relacionais SQL genuínos a partir de aplicativos Google AppEngine, através de um webservice.

Um desses webservice é Rdbhost, em http://www.rdbhost.com .

Trata-se de seus compromissos, em particular a velocidade, em que cada exibição de página requer uma outra solicitação de página backend http ao servidor db, mas ele permite que você use o conhecimento de design SQL que você já tem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top