我有一个有趣的设计问题。我正在设计我们项目的安全方面,以允许我们以不同的成本拥有不同版本的程序,并允许经理类型的用户授予或拒绝其他用户访问程序的某些部分。它基于网络并托管在我们的服务器上。
我为每个“资源”或屏幕使用简单的允许或拒绝选项。
我们将拥有大量资源,用户将能够设置许多不同的组来将用户放入以控制访问。每个用户只能属于一个组。
我有两种方法可以解决这个问题,并且很好奇在性能方面哪种方法更适合 SQL 服务器。
选项 A 访问表中存在条目意味着允许访问。这将不需要数据库中的列来存储信息。如果没有返回结果,则拒绝访问。
我认为这将意味着一个较小的表,但查询会搜索整个表以确定没有匹配项吗?
选项 B 控制允许/拒绝的数据库中包含一个位列。这将意味着总能找到一个结果,并形成一个更大的表。
想法?