Monday, November 26, 2012

Re: Django ORM


On Tue, Nov 27, 2012 at 3:33 AM, Alexandra Paredes <05-38680@usb.ve> wrote:
Ok, well the things we're looking to add and/or improve are: Composed primary key (although we're worried of the difficulty of this one in particular .

A lot of work has already been done on this problem. See Ticket #343 [1], and the work that has been done on a branch stemming from the 2011 Google Summer of Code.


Other thing we notice is that Django emulate the DELETE ON CASCADE, making select and deletes instead of using the DB constraint and we would like to change this.

This shouldn't be too hard to implement. The biggest problem here is that not all databases support cascading deletes (or implement them correctly, in some cases). However, for those that do support it (which is to say PostgreSQL and Oracle), an implementation of native cascading delete should really be case of *not* calling code, rather than needing new code. Deletion strategies are already abstracted behind an interface (See [3]), so it should be fairly easy to drop in a simpler implementation.


For the most part, this could be implemented by doing *less* - Django's deletion infrastructure is already genericised, and putting in an implementation that *doesn't* delete individual objects will really only involve *not* calling code.
 
And basically we would like to make this kind of changes, the idea our thesis is that web frameworks like Django give the possibilities to develop web apps easily, and databases (specially DBMS) are optimized for managing data. So our goal is to see the ORM of Django can take advantage of this features so queries can be even more efficient. 

Django is already used to develop web apps easily, and databases are clearly good for managing data. I'm not sure how a couple of select optimisations in the ORM advances this thesis. A better database layer won't make it any easier to develop web applications -- by definition, the ORM abstracts the implementation details, and a better database layer won't improve the data management capabilities of a database. 

Of course, this is something you need to take up with your own professor/tutor. I might be missing some important details that are specific to your course requirements.

Yours,
Russ Magee %-)

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment