数据库读取复杂性



我在SQL中有一个关系表,它将用户与权限相关联。处于多对多关系的中间也是如此。

该表具有其正确的索引和外键。

用户属于组,所以我想知道保持组-权限

而不是用户-权限之间的关系是否会更有效,这样我会在表中少很多行,所以我想知道性能如何而不是其他方式。

最后我的问题是:在数据库中读取表的复杂性如何?

我很确定它是"理论上"的 O(1),但实际上更像是 O(nlogn) 或 o(n),因为它必须以某种方式索引数据。

顺便说一下,我使用的是SQL Server dbms,但我很确定答案适用于SQL,mySQL等(不包括像Mongo这样的非关系dbms)

你甚至"理论上"都永远无法知道读取数据库中的表的复杂性,因为每个表都与另一个表不同。

一个可能有 2 列,另一个可以有 200 列,一个有

10 条记录,另一个可以有 100mil,一个可以有索引,另一个可能没有和 ETC。

这会影响复杂性,因此,每个案例都适合它自己。

此外,是的,如果您的用户被分成组(并且同一组中的两个人具有相同的权限),那么拥有关系的权利更多

>权限的组

用户>组

比你所做的,因为如果你想要(并且你可能会)添加或删除组权限,在你的情况下,它可能很复杂,需要不必要的加入和资源,而不仅仅是更改一个组的权限。

性能尊重,再次,正如我所说,我不能告诉你

最新更新