On 7/04/2013 3:27pm, surya wrote:
Consider a university college.
1. College has name, uid, website
2. Each college has a many departments - Each department has name, uid.
3. Each batch in a department has name, and ratings.

*from django.db import models*
*
*
*class College(models.Model):*
*name = models.CharField(max_length=200)*
*uid = models.CharField(max_length=10, primary_key=True)*
*website = models.URLField()*
*
*
*def __unicode__(self):*
*return self.name*
*
*
*class Department(models.Model):*
*name = models.CharField(max_length=200)*
*uid = models.CharField(max_length=10)*
*college = models.ForeignKey(College)*
*
*
*def __unicode__(self):*
*return self.name*
*
*
*class Batch(models.Model):*
*name = models.IntegerField(max_length=100)*
*department = models.ForeignKey(Department)*

*college = models.ForeignKey(College)*

college here is redundant because it is part of department

*rating = models.IntegerField(default=0)*
*
*
*def __unicode__(self):*
*return self.name*

def get_college(self):
    return self.department.college

Also, I would omit uid in all models. Django gives you one at no charge. It defaults to college.id etc which is an incrementing integer supplied from the database itself. This simplifies your tasks.

See https://docs.djangoproject.com/en/1.5/topics/db/models/#automatic-primary-key-fields

You would only use a custom primary key (eg your 'uid') in special circumstances. Perhaps you have a legacy database with existing primary keys or there is an expert insisting on it.

hth

Mike

*
*
Would you suggest any better design ? (actually, I never formally read DB)

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



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


Reply via email to