1

((Permision_Role ... Group .. users))の関係を管理したい。また、permission_role は、単一のユーザーまたはユーザーのグループ、あるいはその両方に関連付けることができます。

**これを管理する方法は 2 つあります。

NULL を処理することなく 3 つのテーブルを持つには、次のいずれかを行います。

ここに画像の説明を入力

または、2 つのテーブルを持ち、null 値を許可するには:-

ここに画像の説明を入力

それで、私が従うべきアプローチとその理由は何ですか?

4

1 に答える 1

1

正規化に関しては、すべての列に値があるはずです。NULL は値ではないため、できるだけ避ける必要があります。

ただし、これはあなたの場合は議論の余地があります。ご指摘のとおり、パーミッションがグループ、ユーザー、またはその両方にリンクされていたり、リンクされていなかったりすることは、意味的に間違っているわけではありません。これらの列には NULL が適合します。持っているか持っていないかのどちらかです。したがって、少し非正規化することで結合とそのオーバーヘッドを回避することは、私には不合理に思えません。

PermissionRoleDetails が巨大なテーブルにならない場合は、最初のオプションの方が適している可能性があります。あなたの電話。

于 2013-06-26T16:34:06.457 に答える