当模型的属性是一个巨大的文本

时间:2012-08-22 17:29:28

标签: python database django-models modeling large-data

如果应用程序中的模型具有非常大(大小)的文本属性 甚至longtext也无法包含它,一种可能的存储方式似乎是将它存储在文本文件中并使用文本位置作为数据库的字段。但是我不确定这样的策略是什么适合命名这个属性?

例如,假设我们有:

class Novel(models.Model):
    ???? = models.CharField(max_length=200)

我应该将此属性命名为novel_text还是novel_text_path? 这是存储大量文本的正确方法吗?

我希望这似乎不是一个愚蠢的问题。

感谢。

3 个答案:

答案 0 :(得分:4)

你有没有试过Django的TextField?它适用于您必须存储长文本的情况。

答案 1 :(得分:1)

您应该将其命名为file_path,因为它就是这样。还可以使用Django Model FileField

答案 2 :(得分:1)

如果你想把这个文本存储在一个单独的文件中,我建议将它命名为novel_text_file或类似的东西,使其尽可能清晰和合乎逻辑,而且正如Pratik所写,我会使用Django的文件字段。

但我不认为这是存储这类数据的最佳解决方案。想象一下,如果你需要扩大你的系统。将数据存储在文件中会使其变得更加困难。您必须将文件同步到所有服务器或共享它们。

一种可能的解决方案是使用MongoDB的GridFS。这可能很有用:http://django-mongodb.org/topics/gridfs.html

相关问题