您应该根据应用程序需求设计DAO,而不是
数据库的布局.开始使用一个DAO,如果它变得太大,则以一种对
代码有意义的方式将其重构为多个DAO.
DAO的重点是隐藏应用程序中的任何数据库概念(如表).您的应用程序应该只使用一些有用的方法将其视为服务.
例如,如果您的应用程序需要来自Users表和EmailAddresses表的一些用户数据,那么您的应用程序代码不应该协调两个DAO – 它应该调用一个DAO方法getUserDetails(),并且DAO将隐藏这样的事实:需要调用多个表.
我建议您提出问题中的第一个选项,但我不会将自己局限于“每个容器类一个DAO”这一规则.