【发布时间】:2019-06-13 17:54:29
【问题描述】:
MySQL 版本:5.7
你好。我正在开发一个新的 django 项目。
与此同时,
我带了两张桌子。
Auth(1st Table) 包含用户数据(如 id、电子邮件、密码、姓名等)
Paper(2st Table) 包含研究论文信息。
Paper 表有 10 列用于用户权限。只有 10 个用户可以阅读论文,所以我有一个表格的模型,例如;
class DocDetail(models.Model):
no = models.AutoField(primary_key=True)
doc_id = models.CharField(null=False, default="", max_length=255)
doc_name = models.CharField(null=False, default="", max_length=255)
doc_pw = models.CharField(null=False, default="", max_length=255)
view_perm_1 = models.IntegerField(null=True)
view_perm_2 = models.IntegerField(null=True)
view_perm_3 = models.IntegerField(null=True)
view_perm_4 = models.IntegerField(null=True)
view_perm_5 = models.IntegerField(null=True)
view_perm_6 = models.IntegerField(null=True)
view_perm_7 = models.IntegerField(null=True)
view_perm_8 = models.IntegerField(null=True)
view_perm_9 = models.IntegerField(null=True)
view_perm_10 = models.IntegerField(null=True)
folder = models.CharField(null=False, default="", max_length=255)
url = models.CharField(null=False, default="", max_length=255)
status = models.IntegerField(null=True)
action_exp = models.DateTimeField(null=True)
date_updated = models.DateTimeField(null=True)
view_perm 列表示 Auth Table 的 user_id。
我想通过 1 个查询选择 Paper 表的所有列和链接到每个 view_perm 列的用户数据。
我认为我在建模方面大错特错。
我可以使用 10 个连接进行选择,但它看起来不正确。 有没有更好的办法来实现这一点?
我对 SQL 很陌生,所以请指导我正确的方向。
【问题讨论】:
-
我不能说 Django,但从关系的角度来看,这十列是错误的。正确的方法是使用一个额外的表格来链接用户和论文。
标签: mysql django django-models