【问题标题】:JAVA storage optionsJAVA 存储选项
【发布时间】:2011-12-17 14:48:36
【问题描述】:

好的,我有一个预订对象,它存储了已预订的事件的所有详细信息。现在要批准一个事件,它必须由三个不同的用户查看。每次进行预订时,都应分配这三个。现在,当这三者中的任何一个审查预订请求并给出响应时,必须将该用户标记为他已响应。

我需要存储以下类似

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

因此,例如当用户 1 评论并接受时,我会以这种方式访问​​

 reservationInstance.approvers.user1.response(true);

当然只是一个例子而不是实际的代码。最好的建议是什么?是否可以提供代码进行澄清?我将致力于它的定制

【问题讨论】:

  • “可以提供代码来澄清一下吗?”当然,发布任何你喜欢的简短代码示例。
  • @AndrewThompson 嗯,我无法发布代码,因为我所拥有的只是为满足上述要求而创建的多个类,因此我要求一种可能的快捷方式,而不是访问所有这些对象。

标签: java data-structures storage


【解决方案1】:

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

现在,当这三个人中的任何一个审核预订请求时,并且 给出了一个响应,该用户必须被标记为他响应了。

Reservation 可以有一个 Approver 属性,即 Type User,用于存储哪个用户已经查看了此预订并给出了响应。在数据库层,这可以是用户表的外键。

如果您想找出哪个用户(1,2 或3)查看过。只是reservationInstance.getApprover().getUserId() (假设你的 User 类有一个 userId 属性。)

编辑

根据cmets说清楚:

你有一个预订类:

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)。并且此预订的状态(如果有状态要求)将更改为“已批准”或“已响应”...

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

【讨论】:

  • 所以我必须保留一个用户类,我将在每次预订时实例化 3 次?数组/列表呢?我真的不想让数据库中的映射复杂化。
  • 不,Reservation.approver 在创建/实例化 Reservation 时为空。仅当一个用户查看(这与您的业务逻辑有关)时,该用户才被设置为此 Reservation 实例的批准者。映射一点也不复杂。简单的一对多关系。保留 (*) (1) 用户
  • 是的,但问题是用户必须在预订完成后进行预定义。将向他们发送电子邮件,告知他们进行了新的预订。也许你是对的,我应该只使用一个封装所有细节的用户类?
  • @sys_debug 在我的回答中看到我的编辑。在那里我可以使用格式化程序。希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-11-11
  • 2012-07-29
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多