我的Django项目使用postgresql 9.4,它支持JSON字段。我想使用这些字段从关系模式切换到(部分)非关系模式。
假设我有模型Foo
和Bar
,并且每个对象Bar
只属于一个Foo
。目前,我使用从Bar
到Foo
的ForeignKey来对此进行建模,但我想切换到将Bar
对象直接存储在Foo
内作为模型实例列表。使用postgresql,我可以在JSONField
中使用Foo
来存储Bar
个对象的JSON表示列表,但是我必须手动处理序列化到JSON。
Django的MongoDB ORM提供了Django字段以干净的方式执行此操作:
class Foo(models.Model):
bar_list = ListField(EmbeddedModelField('Bar'))
有没有办法在postgres后端拥有类似的功能?
答案 0 :(得分:0)
将数据对象嵌套在一起是一种非关系型数据库方法,不建议使用,这会导致关系数据库出现性能问题。
如果你在postgres中尝试这个,你会遇到一些问题:
这里的建议是坚持使用一种数据库类型Relational或Non-relational,并在任何一种数据库上做好事。
如果你需要Postgres使用外键,如果你使用Mongo使用嵌套对象。