数据库互连

时间:2013-07-29 14:29:49

标签: mongodb binding relational

我必须互连不同的数据库,关系数据库(postgresql)和nosql数据库(mongodb)。

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

问题:我需要绑定这些实体/文档/其他的一些连接。

架构

  • Postgres实体[id,name,....]
  • MongoDB文件[objectid,name,....]

解决方案:

1 - 将ID设为“外键”:

  • Postgres实体[id,name, mongo_objectId ....]

  • MongoDB文档[objectid,name, postgres_entityId ....]

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

  • 这不友好

  • ids可以改变,我的意思是,如果我将我的postgres迁移到另一种模式。

2 - 生成友好的字符串键以绑定模式:

  • Postgres实体[id,name, key ....]

  • MongoDB文件[objectid,name, key ....]

键是字符串,独特和友好,我的意思是如果名称是“MichàélKnïght”,关键是“michael-knight”或“michael-knight_ {counter}”,如果它已经存在于数据库中。

我的问题

是否会导致性能问题?我认为整数值更适合索引......

1 个答案:

答案 0 :(得分:0)

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