如何制作一个简单的“批准或拒绝”系统

时间:2011-11-21 14:10:49

标签: java java-ee

我正在为我制作的iOS应用制作一个Web应用程序。我想管理我所做的应用程序中的问题,但现在我还希望用户有机会向Web应用程序提交问题。但是,用户提出的问题不能仅仅添加到列表中,因为我想先批准它是一个有效的问题。

我想要做以下事情:

  • 用户可以注册并提交问题的页面。
  • 这是由一个单独的支持bean(与我在管理面板中使用的不同)处理的
  • 这个问题已经传递给了EJB,它再次坚持了这个问题。
  • 然后我有一个用户提交的问题列表,我可以选择“批准”,这意味着我将有机会在批准的问题表中保留问题。

通过这种方法,我必须复制问题表(以及答案和类别表)并有一个前缀或其他东西(例如user_submitted_questions)

这是一种“好”的方式吗?或者我可以做得更好/更有效吗?

2 个答案:

答案 0 :(得分:2)

我不会复制整个问题。相反,请尝试向Question对象添加status字段。当问题进入Web应用程序时,它们可以保持为SUBMITTED状态。审核后,可以将其更新为“已批准”或“已拒绝”。您可以将前端编码为仅在公开视图中显示status == APPROVED的问题。

这避免了维护2个问题表/对象的开销(随着系统的发展,现在您只需要在添加/删除字段时维护1个表/对象)。批准问题的性能也应该提高,因为它只是更新单个字段而不是插入一个全新的行。如果您的表增长太快,您始终可以构建一个清除或移动被拒绝问题的存档(或截断)作业。

答案 1 :(得分:1)

假设您将问题和答案保存在数据库中......

我们在我们的系统中通过在我们的数据库中名为“Approved”的可空位列和相应的时间戳来完成它。当问题进来时,该值最初为空。

在批准或拒绝时,我们会相应地设置位标记,并更新时间戳以显示批准或拒绝的时间。它比重复的表简单得多。