On 6/28/07, Jamie Pittock <[EMAIL PROTECTED]> wrote:
>
> I don't want to code myself into a corner, so when I start looking at
> features such as allowing users to search all venues would I be best
> with one parent model or will I be ok keeping them separate?   The
> different types of venues have quite a number of different attributes
> btw which is why they are different models rather than simply
> categoried.

Model inheritance sounds good on paper, but in practice, it gets
somewhat inconvenient - lots of table joins to get at basic
attributes, etc. If you have very few common attributes anyway,
generic relations are probably worth investigation.

However, as always, YMMV. My only reservation in recommending generic
relations is that they aren't fully integrated with admin yet (though
there is a patch floating around to integrate them with
newforms-admin), and they're not fully documented. However, if you're
willing to put up with those limitations, it sounds like they could be
a good match for your needs.

A third approach that you haven't mentioned is to have a single
'object' table that is sparse; i.e., instead of

class Bar(Model):
   name = CharField()
   number_of_bartenders = IntegerField()

class Club(Model):
   name = CharField()
   music_style = CharField()

you have a single model that has all the fields:

class Venue(Model):
   name = CharField()
   venuetype = CharField(choices=(('b','bar'),('c','club'))
   number_of_bartenders = IntegerField(null=True)
   music_style = CharField(null=True)

This way you spend a little more time in data validation (making sure
that you have all the columns that you need for any given row), and
you waste a little space in the database, but lookups will be a little
faster (as no joins are required).

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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to