我计划为一个不使用任何 ORM 工具的小项目实施身份映射。
我见过的大多数示例中的标准实现只是对象 id 的哈希,但是很明显哈希将无限增长。我正在考虑使用缓存过期的 memcahed 或 redis,但这也意味着某些对象将在缓存中过期,并且它们的数据将再次从数据库中的一个新的和不同的对象(不同对象下的相同实体记忆)。
考虑到大多数 ORM 不需要运行 memcached/redis。他们如何解决这个问题?他们真的解决了吗?有一个由重复实例表示的实体不是一个问题吗?
我知道的唯一解决方案是支持智能指针并在哈希中存储弱引用的语言。在我看来,Ruby 无法采用这种方法,所以我想知道这种模式通常是如何由 Ruby ORM 实现的。