【发布时间】:2017-06-30 22:46:22
【问题描述】:
我有一个带有域对象和数据映射器的 Web MVC 应用程序。数据映射器的类方法包含所有数据库查询逻辑。我试图避免镜像任何数据库结构,因此在构造 sql 语句时实现最大的灵活性。所以,原则上,我尽量不使用任何 ORM 或 ActiveRecord 结构/模式。
我举个例子:
通常,我可以有一个抽象类AbstractDataMapper 被所有特定的数据映射器类继承——比如UserDataMapper 类。然后我可以在AbstractDataMapper 中定义一个findById() 方法,以通过给定的id 值获取特定表的记录——比如users——例如用户身份。但这意味着我总是从单个表中获取记录,而无法使用任何左连接也从与给定 id - 用户 ID 对应的其他一些表中获取一些其他详细信息。
所以,我的问题是: 在这些条件下——我自己有义务这样做,我应该实现一个抽象数据映射器类,还是每个数据映射器类都应该包含它自己完全“专有”的数据访问层实现?
我希望我能清楚地表达我的想法。如果我不清楚或者您有任何问题,请告诉我。
非常感谢您的时间和耐心。
【问题讨论】:
-
作为我自己提供 500 赏金的人,这里有一个免费的建议:不要。我不得不要求模组稍后删除该帖子,因为我收到的答案是垃圾。它会吓跑那些不那么自信的人。而且,如果问题不是 ASAP 问题,您可以通过提供为期两周的 100 点赏金来获得更好的结果。见鬼,500 点预算,你可以在“赏金”部分置顶一个多月。
-
@tereško 感谢您的评论和善意的建议。我不知道。因此,我重新编辑了赏金部分。最后,我的目标确实是吸引好的答案。
标签: php oop design-patterns model-view-controller data-mapping