我最近开始使用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与特定用户(另一个要创建的模型)链接起来。最好的方法是什么?
任何人都可以为我解决这个问题吗?
答案 0 :(得分:0)
关于模型设计的最佳方法,它取决于您的用例。如果你需要一些过滤器"练习"和#34; Serie",如果你需要经常更新/添加/删除"练习"和#34; Serie"实例 - 第一种方法会更好。如果你总是得到所有"运动"和#34; Serie"特别是"工作"实例并且不经常更新您的记录 - 第二种方法也适用。
关于"工作"和"用户" - 这取决于你用来与mongodb互动的应用程序。