views:

3426

answers:

5

Hi All,

Does anyone have any good information aside from the Google App Engine docs provided by Google that gives a good overview for people with MS SQL background to porting their knowledge and using Google App Engine Data Store API effectively.

For Example, if you have a self created Users Table and a Message Table

Where there is a relationship between Users and Message (connected by the UserID), how would this structure be represented in Google App Engine?

SELECT * FROM Users INNER JOIN Message ON Users.ID = Message.UserID
+7  A: 

Here is a good link: One to Many Join using Google App Engine.

http://blog.arbingersys.com/2008/04/google-app-engine-one-to-many-join.html

Here is another good link: Many to Many Join using Google App Engine:

http://blog.arbingersys.com/2008/04/google-app-engine-many-to-many-join.html

Here is a good discussion regarding the above two links:

http://groups.google.com/group/google-appengine/browse_thread/thread/e9464ceb131c726f/6aeae1e390038592?pli=1

Personally I find this comment in the discussion very informative about the Google App Engine Data Store:

http://groups.google.com/group/google-appengine/msg/ee3bd373bd31e2c7

At scale you wind up doing a bunch of things that seem wrong, but that are required by the numbers we are running. Go watch the EBay talks. Or read the posts about how many database instances FaceBook is running.

The simple truth is, what we learned about in uni was great for the business automation apps of small to medium enterprise applications, where the load was predictable, and there was money enough to buy the server required to handle the load of 50 people doing data entry into an accounts or business planning and control app....

Searched around a bit more and came across this Google Doc Article:

http://code.google.com/appengine/articles/modeling.html

App Engine allows the creation of easy to use relationships between datastore entities which can represent real-world things and ideas. Use ReferenceProperty when you need to associate an arbitrary number of repeated types of information with a single entity. Use key-lists when you need to allow lots of different objects to share other instances between each other. You will find that these two approaches will provide you with most of what you need to create the model behind great applications.

TimLeung
+1  A: 

I think this is the basics : Keys and Entity Groups look for it in appengine docs. (I'm new here so can't post a link)

Vincnetas
+1  A: 

Can I supplement the excellent answer further above with a link to a video:

http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine

It's a great talk by Google's Brett Slatkin who talks for an hour about the special way you need to think about your application before you can expect it to scale well. There are some genuine WTFs (such as no count() in db queries) that will cause you to struggle if you are coming from a relational background.

Neil Trodden
A: 

Hi,

I have worked on it but not a expert though Google app engine is very good thing and it is the future as it implements Platform as a Service and Software as a Service. Google app engine provides a non- relational database. So you cantreally write relationships here.

Regards, Gaurav J

A: 

These links are great, but are predominantly python biased, I am using GWT, and therefore have to use the java flavour of GAE, does anyone have any examples of how to achieve these "join" equivalencies in the java version of GAE?

Cheers, John

John V Denley
Have a look at the API documentation on the Google App Engine site: http://code.google.com/appengine/docs/java/datastore/ and more specifically: http://code.google.com/appengine/docs/java/datastore/relationships.html
tomlog