Mongodb 数据库互连

Mongodb 数据库互连,mongodb,binding,relational,Mongodb,Binding,Relational,我必须连接不同的数据库,包括关系数据库(postgresql)和nosql数据库(mongodb) 有一些半结构化实体,然后,我把它们放在mongoDB中,我有一些关系模式,逻辑上,它被存储到postgres中 问题:我需要在这些实体/文档/任何东西上绑定一些连接 模式: Postgres实体[id,名称,…] MongoDB文档[对象ID、名称,…] 解决方案: 1-将ID作为“外键”放置: Postgres实体[id,名称,mongo\u对象id…] MongoDB文档[objecti

我必须连接不同的数据库,包括关系数据库(postgresql)和nosql数据库(mongodb)

有一些半结构化实体,然后,我把它们放在mongoDB中,我有一些关系模式,逻辑上,它被存储到postgres中

问题:我需要在这些实体/文档/任何东西上绑定一些连接

模式

  • Postgres实体[id,名称,…]
  • MongoDB文档[对象ID、名称,…]
解决方案:

1-将ID作为“外键”放置:

  • Postgres实体[id,名称,mongo\u对象id…]

  • MongoDB文档[objectid,name,postgres\u entityId…]

    我不喜欢这些解决方案,因为:

  • 这是不友好的

  • 我的意思是,如果我将postgres迁移到另一种模式,id可以改变
2-生成友好的字符串键以绑定架构:

  • Postgres实体[id,名称,…]

  • MongoDB文档[objectid,name,…]

键应该是字符串、唯一键和友好键,我的意思是,如果名称是“Michél Knïght”,那么如果数据库中已经存在,那么键应该是“michael knight”或“michael-knight{counter}”

我的问题


它会导致性能问题吗?我认为整数值更适合于索引…

MongoDB中有关于ObjectId的内部优化,它比等效字符串更紧凑。主键通常是不可变的,所以我不认为解决方案1是个坏主意