【问题标题】:Design User/Group ACL data model设计用户/组 ACL 数据模型
【发布时间】:2011-01-18 02:51:41
【问题描述】:

我的问题可能与之前在此处提出的问题相呼应: How to design a User Object Model using MS Roles & Membership,但我又问了一次,因为还没有好的答案,而且我的问题还是针对数据模型设计的:

所以无论如何,在我的应用程序中,有用户和组。一个用户可以属于许多组,当然一个组可以包含许多用户。现在的问题是,我们只知道几个基本组:用户、访客和管理员。将来,可能会有 can-do-X、can-do-Y 组,并且可能会更多或不超过 admin、user 和 guest。所以我很想采取简单的方法。以下是我对这些方法的看法:

如果我打算有一个简单的 User 表和一个 Role 表,以及另一个模拟多对多关系的表,它似乎有点过度设计。如果我理解正确,这将被视为规范化方法。相反,如果我在 User 表中添加 IsAdmin、IsGuest、CanDoX、CanDoY 等以下列,那么这将是非规范化的。

我希望在复杂性和灵活性、时间和空间等之间取得平衡。请提出建议。

【问题讨论】:

    标签: database-design normalization denormalization


    【解决方案1】:

    我强烈推荐标准化的 USER_ROLE(或 ROLE_USER)表。它不是“过度设计的”,它正确准确地反映了您的要求。

    我在一个完全使用这种模型的数据库系统上工作;它目前有 250 个不同的角色,并且工作正常。在 users 表上拥有 250 个“CanDoX”列将是一场噩梦,而且无论如何都不是一个选项,因为允许一些超级用户定义新角色。

    【讨论】:

      【解决方案2】:

      而不是“CanDoX”、“CanDoY”的多列使用位掩码来表示权限。

      【讨论】:

        猜你喜欢
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2014-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多