1

我想管理((Permision_Role ... Group .. users))之间的关系。并且权限角色可以与单个用户或一组用户或两者相关联。

**我有两种管理方式。

要么拥有三个表而不必处理空值:-

在此处输入图像描述

或者有两个表并允许空值:-

在此处输入图像描述

那么我应该遵循哪种方法,为什么?

4

1 回答 1

1

标准化明智,您应该为每一列都有一个值。由于 NULL 不是一个值,因此您应该尽力避免它。

然而,这在你的情况下是有争议的。正如您所指出的,权限可以链接到组、用户、两者或都没有,这在语义上并不是不正确的。NULL 适合这些列:要么有,要么没有。因此,通过非规范化来避免连接及其开销对我来说似乎并不合理。

现在,如果 PermissionRoleDetails 不是一个巨大的表,第一个选项可能更合适。你的来电。

于 2013-06-26T16:34:06.457 回答