首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在django我们应该什么时候使用ForeignKey和ManyToOne?

在django我们应该什么时候使用ForeignKey和ManyToOne?
EN

Stack Overflow用户
提问于 2013-04-11 09:59:18
回答 1查看 67关注 0票数 0

有两个模范学院,系

代码语言:javascript
复制
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)

在这里,我们可以说在关系中有两种方式..。

  1. 每一所学院都有许多系
  2. 每个系属于一所学院(以上模式属于)

使用第二设计时遇到的麻烦

大学里的每个系都不能有重复的名字。也就是说,我们不能在一所大学里用一个单一的名字设立多个系。怎么做?

采用了正确的数据库设计吗?如果不是怎么做的话?

EN

Stack Overflow用户

发布于 2013-04-11 10:07:39

你的外键模型看起来是正确的,如果不能将一个系划分成多所大学。如果一个系可以划分为多所大学,那么你必须设置一个带有“通过”论点的ManyToMany,并且在低谷模型中添加一个"unique_together“,如下面所示:

对于FK,要添加您的约束,您应该更改部门如下:

代码语言:javascript
复制
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'),)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15945864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档