Django -什么被认为是一个“大”模型?

ni65a41a  于 2022-12-30  发布在  Go
关注(0)|答案(2)|浏览(105)

我喜欢尽我所能地规范化数据库中的事物。这显然不是性能方面最好的事情,但它有助于灵活性、报告等。我发现在最近的一个案例中很难证明这一点,尽管这导致我构建了一个包含25个字段的模型。这是“太大”了吗?或者,这很正常吗?当然,显而易见的答案是,“任何最适合你的方案。",但我打算最终出售软件,我希望谁买它喜欢的代码(支付更多的钱)。

nnsrf1az

nnsrf1az1#

就像你说的它在你的场景中起作用吗?
但要用更恰当的方式回答你的问题:因为你没有提供任何关于你在模型中定义的字段的信息,所以我们很难猜测它是否是“正常”的。
如果这真的让你烦恼,你可以尝试创建一些额外的模型。例如:

class User(model):
    username = Charfield()

    # Settings for this user
    showdebug = Boolean()
    regexsearch = Boolean()
    .....
    colour = HexColor()

可变为:

class UserSettings(model):
    showdebug = Boolean()
    regexsearch = Boolean()
    ......
    colour = HexColor()

class User(model):
    username = Charfield()

    settings = ForeignKey(UserSettings)
ozxc1zmp

ozxc1zmp2#

上面的答案是过时的,但正确的:)下面是Django的一个更标准的语法,这里是一个link to the ForeignKey docs
换一种方式来回答这个问题,设置准确的模型参数并尽可能有效地使用模型是非常重要的。在哪里开始看到模型大小的问题实际上是规模化的,取决于您使用的数据库类型。经验丰富的开发人员可能会编写一些测试来确定在什么时候开始出现问题。

class UserSettings(models.Model):
    userBio = models.TextField(max_length=500, blank=True)

class Profile(models.Model):
    email = models.CharField(max_length=255, blank=True)
    settings = models.ForeignKey(UserSettings, on_delete=models.CASCADE)

相关问题