因此,据我了解,存储库层的整个想法是您可以快速轻松地将一种解决方案换成另一种解决方案。说,我想从 MySQL 切换到 MongoDB。我需要担心的是编写一个新的存储库层。
到目前为止,一切都很好。
问题是,MySQL 将(实际上很可能)使用整数作为主键,而 MongoDB 将使用字符串。或者我希望我的存储库层指向一个 Web 服务,谁知道他们使用什么样的 ID...
因此,为了给我的存储库层一个面向未来的接口,我不能有如下方法:
EmployeeRepository.getById(int id)
或者
EmployeeRepository.getById(string id)
那么一个人要做什么呢?始终使用字符串(或对象??),然后让存储库层转换或转换它,但是它需要吗?
或者应用程序的模型是否应该有自己的内部 ID 方案,该方案与数据库的 ID 方案完全分离,并且您总是在该 ID 上获取?就像是:
EmployeeRepository.getByInternalId(int id)
这里的最佳做法是什么?