我正在尝试了解如何为我正在编写的应用程序实现用户/角色关系。持久层是GoogleAppEngine的数据存储,它对可以做的事情施加了一些有趣的(但通常是有益的)约束。任何想法都值得赞赏。
把事情具体化可能会有所帮助。我希望有组织、用户、测试内容和测试管理(已进行测试的记录)。用户可以扮演参与者(考生)、测试材料贡献者或两者兼有的角色。用户也可以是零个或多个组织的成员。在参与者的角色中,用户可以查看他或她以前参加的测试的管理情况。如果另一个参与者已授予用户授权,则用户还可以查看该参与者的测试管理。用户可以查看已公开的测试材料,并且在组织授权用户进行测试的特定管理期间,他或她可以作为参与者查看受限制的内容。作为组织的成员,用户可以以贡献者的身份查看受限制的内容,他或她可能也无法编辑内容。每个组织都应该有一个或多个管理员,他们可以确定成员是否可以查看和编辑内容,并确定谁拥有管理员权限。还应该有一个或多个应用程序范围的超级用户可以排除故障并解决问题。组织成员可以查看相关参与者授权他们查看的测试管理,如果没有授权,他们可以查看匿名数据。在任何其他情况下,用户都无法看到其他用户的测试结果。
由于应用程序引擎数据存储中没有联接,因此可能有必要对典型SQL数据库进行比通常更少的规范化处理,以确保检查权限的查询是快速的(例如,确定是否显示链接的查询)。
我的问题是:
-
我该如何推进?我应该花很多时间来构建正确的模型,还是可以迭代几次,然后逐渐增加复杂性?
-
有人对这种情况下如何分手有一些大致的想法吗?
-
是否有任何GAE库以与这种安排兼容的方式处理角色?