我正在尝试了解如何为我正在编写的应用程序实现用户/角色关系。持久层是Google App Engine的数据存储区,它对可以执行的操作设置了一些有趣(但通常是有益的)约束。任何想法都表示赞赏。
让事情变得非常具体可能会有所帮助。我希望有组织,用户,测试内容和测试管理(已经采取的测试记录)。用户可以具有参与者(测试者),测试材料的贡献者或两者的角色。用户也可以是零个或多个组织的成员。在参与者的角色中,用户可以看到他或她已经进行的先前的测试管理。如果该参与者已授予用户授权,则用户还可以看到另一参与者的测试管理。用户可以看到已公开的测试材料,并且他或她可以在特定管理测试期间将受限内容视为参与者,该测试已由组织授权该用户。作为组织的成员,用户可以看到贡献者角色中的受限内容,并且他或她可能也可能不能编辑内容。每个组织都应该有一个或多个管理员,可以确定成员是否可以查看和编辑内容并确定谁拥有管理员权限。还应该有一个或多个应用程序范围的超级用户可以解决和解决问题。组织成员可以看到相关参与者授权他们查看的测试管理,如果没有授权,他们可以看到匿名数据。在任何其他情况下,用户都无法看到其他用户的测试结果。
由于App Engine数据存储区中没有连接,因此为了确保检查权限的查询速度很快(例如,确定是否存在链接的查询),可能需要对典型的SQL数据库进行较少规范化的操作。将显示)。
我的问题是:
答案 0 :(得分:1)
我不太确定我是否正确理解你的问题,但我会尽力回答:
Permission
,它定义每个角色可以执行的操作,每个角色具有零个或多个Permission
链接。请记住,对于GAE中的每个多对多关系,您需要定义一个键列表,或者单独的实体作为中介。