用户 + 成员资格 + 组的 SQL 数据库结构
Posted
技术标签:
【中文标题】用户 + 成员资格 + 组的 SQL 数据库结构【英文标题】:SQL Database Structure for Users + Memberships + Groups 【发布时间】:2016-06-17 12:08:23 【问题描述】:我正在开发一个电子商务网站,我想了解这个社区对组、用户及其成员资格的数据库结构的看法。
目标:在登录时确定用户的组成员身份和访问权限。用户可以是此站点上的卖家、管理员、站点支持人员或任何东西。必须是可扩展的。
初步想法:三个单独的表:users
、groups
和 memberships
。成功登录后,在成员表中搜索用户 ID 并从成员表中的同一行获取组 ID。从那里,另一个查询从组表中获取组信息(如组名、描述等)。将成员资格存储在用户的会话中并收工。
顾虑:在登录时,我不想不必要地执行额外的查询。上述“初步想法”由登录时的 3 个单独查询组成。
问题:
这是正确的方法吗? 有更好的设计解决方案吗? 最好将管理员分到他们自己的表中,还是将它们扔到同一个groups
表中?
【问题讨论】:
【参考方案1】:数据库设计合理。由于一个用户可以属于多个组并且可以拥有多个成员资格,因此需要两个额外的表 USER_GROUP
和 USER_MEMBERSHIP
来保存用户和组之间以及用户和成员资格之间的关系。
【讨论】:
以上是关于用户 + 成员资格 + 组的 SQL 数据库结构的主要内容,如果未能解决你的问题,请参考以下文章
具有 ASP 成员资格的 Sql Server 中的安全性和 SQL 注入
Azure IAM - 是不是可以使用 Azure Policy 审核组成员资格?