正在开发的应用程序的一部分是向用户呈现表单并请求他们拒绝/接受它。有些类型的用户需要批准相同的表单才能被认为是被接受的。我需要的建议是:我可以使用什么结构/最好地存储用户类型及其响应? 到目前为止,我有一个批准者的对象。这使用三种类型的用户拥有setter和getter(以及与操作相关的其他方法)。我还创建了另一个UserDecisions对象,其中我有两个要设置的属性,它们是:Usertype&响应。但我想不出如何将它们联系在一起或者是否有更好的方法? 谢谢,
P.S。我考虑的事情是2D阵列和包含HashMap。
答案 0 :(得分:1)
“非规范化”系统会有User
个,UserType
枚举(或类似),以及User
=>的集合Response
秒。地图很好;它加快了确保用户不投票两次。
如果您需要按UserType
汇总答案,则可以单独记录UserType
=> Response
已更新,因为已对回复进行了统计。
答案 1 :(得分:1)
为用户创建基类。扩展它们以创建您自己的自定义用户类,例如Approvers。在UserDecisions类中,为formName或userName创建一个字段,该字段将UserDecisions与Users链接。或者,您可以创建一个单独的类来进行链接。
答案 2 :(得分:1)
假设你有
User { name, type }
// type is perhaps an enum with values such as administrator,
// manager, seniorManager, executive
Response { user, decision }
// decision is an enum "pending", "approved", "rejected"
Role { name, minimumTypeOfUser }
// first approval can be done by administrators or above
// second approval by managers or above
// third approval by executives only
Approval { Role, Response }
ThingToBeApproved { detalsOfWhatNeedsApproving, approvalList<Approval> }
// when you set up the approval list you specify each
// approval role and then select a user whose type matches
// the role.
在我工作的系统中,我们将用户与角色分离以完成任务 - 更高级的人有时会履行大三的角色。