((Permision_Role ... Group .. users))の関係を管理したい。また、permission_role は、単一のユーザーまたはユーザーのグループ、あるいはその両方に関連付けることができます。
**これを管理する方法は 2 つあります。
NULL を処理することなく 3 つのテーブルを持つには、次のいずれかを行います。
または、2 つのテーブルを持ち、null 値を許可するには:-
それで、私が従うべきアプローチとその理由は何ですか?
((Permision_Role ... Group .. users))の関係を管理したい。また、permission_role は、単一のユーザーまたはユーザーのグループ、あるいはその両方に関連付けることができます。
**これを管理する方法は 2 つあります。
NULL を処理することなく 3 つのテーブルを持つには、次のいずれかを行います。
または、2 つのテーブルを持ち、null 値を許可するには:-
それで、私が従うべきアプローチとその理由は何ですか?
正規化に関しては、すべての列に値があるはずです。NULL は値ではないため、できるだけ避ける必要があります。
ただし、これはあなたの場合は議論の余地があります。ご指摘のとおり、パーミッションがグループ、ユーザー、またはその両方にリンクされていたり、リンクされていなかったりすることは、意味的に間違っているわけではありません。これらの列には NULL が適合します。持っているか持っていないかのどちらかです。したがって、少し非正規化することで結合とそのオーバーヘッドを回避することは、私には不合理に思えません。
PermissionRoleDetails が巨大なテーブルにならない場合は、最初のオプションの方が適している可能性があります。あなたの電話。