我想管理((Permision_Role ... Group .. users)之间的关系。并且permission_role可以与单个用户或一组用户或两者相关联。
**我有两种管理方法。
要么有三个表而不必处理空值: -
或者有两个表并允许空值: -
那么我应该遵循哪种方法?为什么?
答案 0 :(得分:1)
标准化,你应该为每一列都有一个值。由于NULL不是值,因此您应该尽力避免它。
然而,在你的情况下,这是有争议的。正如您所指出的,权限可以链接到组,用户,两者都没有,在语义上不正确。 NULL适合这些列:要么你拥有它,要么你没有。因此,通过非规范化来避免连接及其开销对我来说似乎并不合理。
现在如果PermissionRoleDetails不是一个巨大的表,第一个选项可能更合适。你的电话。