Progettazione dello schema di persistenza per BigTable su AppEngine

2

Ho provato a progettare lo schema del datastore per un'applicazione molto piccola. Tale schema sarebbe stato molto semplice, se non banale, utilizzando un database relazionale con chiavi esterne, relazioni molti-a-molti, join, ecc.

Ma il problema era che la mia applicazione era indirizzata a Google App Engine e che dovevo progettare un database non relazionale. Alla fine mi sono arreso.

Esiste un libro o un articolo che descrive i principi di progettazione per le applicazioni destinate a tali database?

I libri che ho trovato riguardano la programmazione per App Engine e non dedicano molte parole ai principi di progettazione del database.

    
posta Виталий Олегович 07.11.2012 - 22:52
fonte

1 risposta

1

In generale, la creazione di un modello di dati per un database NoSQL non è diversa da quella di qualsiasi altro database (ricordare No sta per NotOnly ). Dovresti comunque cercare gli oggetti coesivi che puoi nominare e descrivere come:

  • entità (o in alcuni casi: documenti)
  • attributi
  • associazioni / relazioni tra entità

La differenza rispetto a un modello relazionale tradizionale può derivare da particolarità del DB NoSQL utilizzato o dallo scenario che si sta tentando di ottenere (ad esempio, ottimizzare per letture frequenti, scritture, udpate). Ad esempio, in un'applicazione GAE è possibile ottimizzare l'accesso in lettura modellando esplicitamente le relazioni padre / figlio, mantenere i dati coerenti per gruppi di entità e proprietà multivalore per migliorare le operazioni di join con più entità.

C'è una buona documentazione su questo (relativa al GAE) da parte della gente di Google e altri:

BTW, GAE fornisce anche supporto per DB relazionali basati su MySQL

    
risposta data 28.12.2012 - 11:49
fonte