2011-12-17 61 views
0

好吧,我有一个预留对象,它存储所有预订的事件的所有细节。现在需要批准的活动必须由三个不同的用户查看。每次预定时,都应该分配这三个。现在,当预约请求被三者中的任何一个审查并给出响应时,该用户必须被标记为他作出了回应。JAVA存储选项

我需要存储以下类似

User1 ----> Response & Type & ID 
User2 ----> Response & Type & ID 
User3 ----> Response & Type & ID 

所以当USER1例如审查和接受,然后我访问这样

reservationInstance.approvers.user1.response(true); 

只是过程的一个例子,而不是实际的代码。最好的建议是什么?并可以提供澄清的代码吗?我将致力于其定制

+1

*“并且可以提供澄清的代码吗?”*当然,发布您喜欢的任何短代码样本。 – 2011-12-17 14:56:11

+0

@AndrewThompson嗯,我不能发布代码,因为我所有的都是创建多个类来实现上述,因此我要求一个可能的快捷方式比访问所有这些对象。 – 2011-12-17 14:58:47

回答

1

您的预订不必拥有一个List/Set批准者,一个就足够了。既然你提到:

现在,当预约请求由任何三个,和 响应给出的审查,该用户必须被标记,他的反应。

预订可能有一个Approver属性,它将是类型用户,用于存储哪个用户查看了该预留并给出了响应。在数据库层中,这可以是用户表的外键。

如果你想知道哪个用户(1,2或3)已经查看过。只是reservationInstance.getApprover().getUserId() (假设你的用户类有一个UserID属性。)

编辑

要清楚基于评论:

你有订座舱位:

Reservation: 
- Integer id 
- User approver 
- String content 
- List<User> recievers 
- String (could be enum) status (created, approved...etc.) 

您有用户级别

User: 
- Integer id 
- String name 
- String foo 
- ... 

如果我理解您的要求,请执行以下操作:

创建预留实例时,会设置一组用户作为接收者。这意味着,这些用户将会收到预订。在你的情况下,也许有3个用户。在这里你发送电子邮件,传真,短信给他们。

然后,说user2(id = 2),打开它,并批准此预留。 reservation.approver将被设置为用户对象(id = 2)。和此状态(如果有状态要求)将更改为“已批准”或“已回复”...

我不知道您确切的要求是什么,但希望这有助于。

+0

所以我必须保留一个用户类,我将每次预约实例化3次?数组/列表怎么样?我真的不想让数据库中的映射复杂化。 – 2011-12-17 15:00:40

+0

不,创建/实例化Reservation时,Reservation.approver为空。只有当一个用户查看(这与您的业务逻辑有关)时,该用户被设置为此预约实例的批准者。该映射根本不复杂。只是一对多的关系。预订(*)< - 审批人 - >(1)用户 – Kent 2011-12-17 15:04:19

+0

是的,但事情是用户必须在预订后预定义。电子邮件将发送给他们,一个新的预订。也许是吧,我应该只使用封装所有细节的用户类? – 2011-12-17 15:06:57