我必须互连不同的数据库,一个关系数据库(postgresql)和一个nosql数据库(mongodb)。
有一些半结构化的实体,然后,我将它们放在 mongoDB 中,并且我有一些关系模式,从逻辑上讲,将其存储到 postgres 中。
问题:我需要在这些实体/文档/任何东西之间绑定一些连接。
架构:
- Postgres 实体[id,name,....]
- MongoDB 文档[objectid,name,....]
解决方案:
1 - 将 id 作为“外键”:
Postgres 实体[id,name, mongo_objectId ....]
MongoDB 文档[objectid,name, postgres_entityId ....]
我不喜欢这些解决方案,因为:
这不友好
- 我的意思是,如果我将我的 postgres 迁移到另一种模式,ids 可以改变。
2 - 生成友好的字符串键来绑定模式:
Postgres 实体[id,name, key ....]
MongoDB 文档[objectid,name, key ....]
键将是字符串,唯一且友好的,我的意思是如果名称是“Michàél Knïght”,则键将是“michael-knight”或“michael-knight_{counter}”,如果它已经存在于数据库中。
我的问题:
它会导致性能问题吗?我认为整数值更适合索引...