Database 如果DB包含表上的视图,是否需要更改类图?
我是设计类图的新手。我在设计中遵循DAO模式 在我的项目中,一个用户可以添加多个联系人,这些联系人可以进一步添加到多个组中 比如说1个联系人->多个组。 根据我的要求,UserContact和UserGroup是管理联系人和组的类 在数据库中,联系人和组存储在两个不同的表中 有一个用例可以检索所有联系人及其组,因此我需要首先检索所有联系人,然后再次使用contactID,我需要进行查询以获取其相对组。为了避免在DB中出现这种情况,这两个表上都有视图。 现在,对于VIEW,我需要进行一次查询以获取用户联系人和组 如何在DAO中添加此方法? 如何更改我的类,以便联系人和组可以映射到我的对象? 以下是本用例中涉及的类。Database 如果DB包含表上的视图,是否需要更改类图?,database,oop,dao,class-diagram,Database,Oop,Dao,Class Diagram,我是设计类图的新手。我在设计中遵循DAO模式 在我的项目中,一个用户可以添加多个联系人,这些联系人可以进一步添加到多个组中 比如说1个联系人->多个组。 根据我的要求,UserContact和UserGroup是管理联系人和组的类 在数据库中,联系人和组存储在两个不同的表中 有一个用例可以检索所有联系人及其组,因此我需要首先检索所有联系人,然后再次使用contactID,我需要进行查询以获取其相对组。为了避免在DB中出现这种情况,这两个表上都有视图。 现在,对于VIEW,我需要进行一次查询以获取
如果我正确理解了问题;您可以创建一个只具有查询(get)方法的
GroupContactDAOImpl
类,例如getGroupContacts(groupId)
或getAllGroupContacts()
。由于“组联系人”不是一个有自己表的实体,UserContactDAOImpl.addContact
和UserGroupDAOImpl.addGroup
方法足以添加新记录
如果需要获取与一个联系人关联的组,如何将联系人信息和组映射到一个对象
如果要将联系人信息和组映射到一个对象,可以将UserGroup
属性添加到UserContact
类(如中)。然后GroupContactDAOImpl
将有如下方法:UserContact-getUserContactWithGroups(contactID)
同样,如果你想获得一个组的所有联系人的信息;您可以将UserContact
属性添加到UserGroup
类中GroupContactDAOImpl
将有如下方法:UserGroup getUserGroupWithContacts(groupID)
可能还有其他方法可以做同样的事情;希望这有帮助
因为我需要使用UserContact插入和更新联系人,所以它应该只包含contactID、电子邮件和姓名。我使用UserContact和UserGroup作为DTO。我可以创建一个新类来保存UserContact和使用UserContactDAOImpl的UserGroup吗?这是一种更好的方法吗
是的,如果您想让
UserContact
类保持原样,可以这样做。您将拥有一个新的DTO(例如UserContactWithGroups
),并从UserContactDAOImpl
返回它(例如getContactWithGroups
方法)。您还可以创建一个单独的DAO类,但这并不重要。最好将其适应您自己的用例。谢谢您的回复。如果我需要获取与一个联系人关联的组,如何将联系人信息和组映射到一个对象?因为我需要使用UserContact插入和更新联系人,所以它应该只包含contactID、电子邮件和姓名。我使用UserContact和UserGroup作为DTO。我可以创建一个新类来保存UserContact和使用UserContactDAOImpl的UserGroup吗?这是一种更好的方法吗?它对我有帮助。非常感谢。@satyanarayana那么你可能会接受亨金尼的回答来奖励你的努力(也许你也会投票……;o)