On Sunday, April 7, 2013 11:42:50 AM UTC+5:30, Mike Dewhirst wrote: > > 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. >
actually, you are right, django models do provide id.. but this uid field is something else.. Eg: massachusetts institute of technology. uid = MIT..i will be using it as primary key. > > 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 [email protected] <javascript:>. > > To post to this group, send email to > > [email protected]<javascript:>. > > > Visit this group at http://groups.google.com/group/django-users?hl=en. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > Actually, in each College, there may be many departments, and each department may be in many colleges... Can't I use ManytoManyField here? -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.

