我有一个Web MVC应用程序,其中包含域对象和数据映射器。数据映射器的类方法包含了所有数据库查询逻辑。我试图避免镜像任何数据库结构,并因此在构建SQL语句时实现最大的灵活性。因此,原则上,我试图根本不使用任何ORM或ActiveRecord结构/模式。
让我举个例子: 通常,我可以有一个抽象类AbstractDataMapper,被所有特定的数据映射器类继承 - 如UserDataMapper类。然后我可以在AbstractDataMapper中定义findById()方法,通过给定的id值(例如用户ID)来获取特定表 - 如users - 的记录。但这将意味着我总是从单个表中获取记录,无法使用任何左连接来获取与给定id - 用户ID相对应的其他表中的一些其他详细信息。
所以,我的问题是: 在这些条件下 - 我自己强制执行的条件,我应该实现一个抽象的数据映射器类,还是每个数据映射器类应该包含其自己完全“专有”的数据访问层实现?
我希望我能清楚地表达我的想法。如果我有所不清楚或您有任何问题,请告诉我。
非常感谢您的时间和耐心。
让我举个例子: 通常,我可以有一个抽象类AbstractDataMapper,被所有特定的数据映射器类继承 - 如UserDataMapper类。然后我可以在AbstractDataMapper中定义findById()方法,通过给定的id值(例如用户ID)来获取特定表 - 如users - 的记录。但这将意味着我总是从单个表中获取记录,无法使用任何左连接来获取与给定id - 用户ID相对应的其他表中的一些其他详细信息。
所以,我的问题是: 在这些条件下 - 我自己强制执行的条件,我应该实现一个抽象的数据映射器类,还是每个数据映射器类应该包含其自己完全“专有”的数据访问层实现?
我希望我能清楚地表达我的想法。如果我有所不清楚或您有任何问题,请告诉我。
非常感谢您的时间和耐心。