学院有两种模式,部门
class College(models.Model):
name = models.CharField(max_length=200)
uid = models.CharField(max_length=10, unique=True)
website = models.URLField()
class Dept(models.Model):
name = models.CharField(max_length=200)
uid = models.CharField(max_length=10)
college = models.ForeignKey(College)
在这里,我们可以用两种方式说出这种关系......
使用第二种设计时出现问题
大学里的每个系都不能有重复的名字 ..也就是说,我们不能在一个大学的单一名称下设多个部门..怎么做?
是否采用了正确的数据库设计?如果不是怎么做?
答案 0 :(得分:0)
如果不能将某个部门划分为多个大学,那么带有外键的模型看起来是正确的。如果一个部门可以划分为多个学院,则必须使用“通过”参数设置ManyToMany,并在槽模型中添加“unique_together”,如下所示:
对于FK,要添加约束,您应该按如下方式更改Dept:
class Dept(models.Model):
name = models.CharField(max_length=200)
uid = models.CharField(max_length=10)
college = models.ForeignKey(College)
class Meta:
unique_together = (('name', 'college'),)