Django中的弱实体

时间:2014-03-22 11:34:28

标签: django django-models rdbms

有人可以解释一下如何在django中表示弱实体关系吗?

我在django的文档中搜索过它,但找不到。我甚至在google和stackoverflow上搜索之前在这里发布了一个问题。

如果不能代表弱实体关系,请告诉我django中最合适的替代方案

更新

我正在开发一个电子学习网站,因此有一个Course课程,其中包含titledescriptioncreator等属性,我想添加一个名为"Week"的弱实体(用于存储course的每周内容),该实体将附加到名为Course的强大实体,我希望course_id来自Course来自week_no类的类和Week充当周类中每个条目的primary key

1 个答案:

答案 0 :(得分:1)

好吧,让我们从wikipedia

中取这个例子

您有一个订单类和一个产品类。

然后你有一个OrderItem类,它将是弱实体。

class Order(models.Model):
    some_attributes

class Product(models.Model):
    some_other_attributes

class OrderItem(models.Model)
    order = models.ForeignKey(Order)
    product = models.ForeignKey(Product)
    other_attributes

    class Meta:
        unique_together = (order, product)

unique_together元属性将确保每个OrderItem不会有多个数据库条目,其中这两个值都会重复。

我认为这可能与你正在寻找的完全不符,但它可能是一个开始。如果您提供有关您尝试完成的内容的更多详细信息,我可以帮助您进行一些表格调整,甚至可以使用此方法获取数据的查询示例。

修改 的 你是对的,没有像弱实体领域这样的领域。我的消化是你像对待任何其他人一样对待周模型。并将其链接到课程模型,如下所示:

 class Course(models.Model):
      title = models.CharField()
      description = models.CharField()
      etc..

 class CourseWeek(models.Model):
      course = models.ForeignKey(Course)
      week_number = models.IntegerField()
      topic = models.CharField()
      slideshow = models.FileField()

      class Meta:
         unique_together = ('course' , 'week_number')

希望这会有所帮助:)