postgres的双引号问题

kqqjbcuj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(394)

我在用django和postgres。下面是我用来在db中创建表的代码片段。

class user(models.Model):
    user_id = models.IntegerField(primary_key=True)
    username = models.CharField(max_length=30)
    password = models.CharField(max_length=30)
    role_id = models.ForeignKey(role,on_delete=models.CASCADE)
    class Meta:
        db_table = 'user'

我的问题是:
为什么用户表被重命名为“user”(带引号)
为什么要将role\u id命名为role\u id\u id,而我已经明确提到role\u id是我的列名?

5sxhfpxr

5sxhfpxr1#

在阅读了有关stackoverflow的一些回答之后,我认为之所以要创建“user”表而不是user(不带引号),是因为user是postgres中的保留关键字,不能用作表名。第二个问题是关于id部分:

Behind the scenes, Django appends "_id" to the field name to create
its database column name.

相关问题