MongoDB和Django模型结构

时间:2014-06-25 07:03:13

标签: python django mongodb django-models

我最近开始使用Django,到目前为止我只尝试使用SQLite作为数据库。现在,我想使用MongoDB,但在定义模型时遇到了一个小问题。

之前我正在使用NodeJS和Mongoose,我已经定义了模型:

date : Date,
type : String,
   exerc : {
      name : String,
      series : {
         weight : Number,
         rep : Number,
         quant : Number
      }
   }

在Django,我仍然有点失落。我想到了两种不同的方法,但我不确定两者是否都是正确的。

第一种方法是这样(暂时忽略数据类型):

class Work(models.Model):
  date
  type
  exerc #reference to Exerc

class Exerc(models.Model):
  name
  series #reference to Serie

class Serie(models.Model):
  weight
  rep
  quant

第二种方法基本上涉及将类型ListField()添加到exerc并将serie也作为ListField()嵌入到Work模型中。由于我不确定这是如何工作的(我只看了几个例子),我想知道这是否对我有用。

另外,我需要将Work与特定用户(另一个要创建的模型)链接起来。最好的方法是什么?

任何人都可以为我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

关于模型设计的最佳方法,它取决于您的用例。如果你需要一些过滤器"练习"和#34; Serie",如果你需要经常更新/添加/删除"练习"和#34; Serie"实例 - 第一种方法会更好。如果你总是得到所有"运动"和#34; Serie"特别是"工作"实例并且不经常更新您的记录 - 第二种方法也适用。

关于"工作"和"用户" - 这取决于你用来与mongodb互动的应用程序。