Just a hint. When you define a data model in terms of end-user requests and appropriately define your data model.
For example, let's take an example of a bookstore rental shop. In a traditional application, you will have three main objects:
-> Book
-> Client
-> Rent (for many-to-many solutions)
To display the report with which the client rents this book, you must send a request to the rental table, table of books and table of clients.
However, in GAE, this will not work because the join operation is not supported.
The solution I found (maybe a different solution) is to simulate the same three tables, but embed the book and customer definitions in the Rent table.
Thus, you will see a list of books rented by someone very fast and inexpensive. The only drawback is that if, for example, the name of the book changes, I have to go through all the embedded objects. However, how often does this happen compared to read-only queries.
As a resume, think about end-user requests
source share