如何找到表之间的正确关系?

2024-09-30 12:34:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一个新的django社交媒体项目,它有用户、状态和评论。它们之间的关系是这样的:用户和状态有关系,用户和评论有关系,状态和评论也有关系

为此,我构建了四个表,即User、Comment、Status和UCSModel。其中UCSModel是包含其余三个表的外键的表。UCSModel更像是由所有ID组成的关系表

这是我的模特

from django.db import models

class User(models.Model):

    username = models.CharField(max_length=50, unique=True)
    email = models.CharField(max_length=200)
    password = models.CharField()

    def __str__(self):
        return self.username


class Comment(models.Model):

    comment = models.CharField()

    def __str__(self):
        return self.comment

class Status(models.Model):

    status = models.CharField()

    def __str__(self):
        return self.status

class USCRelation(models.Model):

    user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    comment = models.ForeignKey(Comment, null=True, on_delete=models.CASCADE)
    status = models.ForeignKey(Status, null=True, on_delete=models.CASCADE)

作为Django的新手,我想知道是否有更好的方法来建立表之间的关系。尤其是当所有三个表都像我上面的例子那样相互关联时


Tags: 用户selftruemodel关系models状态def
1条回答
网友
1楼 · 发布于 2024-09-30 12:34:59

找到下面的数据库设计,这将帮助您优化查询:

from django.db import models

class User(models.Model):

    username = models.CharField(max_length=50, unique=True)
    email = models.CharField(max_length=200)
    password = models.CharField()

    def __str__(self):
        return self.username

class Status(models.Model):

    status = models.CharField()

    def __str__(self):
        return self.status

class Comment(models.Model):

    comment = models.CharField()
    status = models.ForeignKey(Status, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.comment

希望这有帮助

相关问题 更多 >

    热门问题