-3

私はこのようなマトリックスを持っています

              User                                   trial                      free
package1      fullaccess                             limited access             very limited access
              partial access to downloads            previews                   expiration

package2      full access                            n/a                        n/a
              full access to assets  

このシナリオのスキーマを作成する方法

4

1 に答える 1

3

アクセス許可のテーブルを用意することで、最適なサービスが提供されます。

Permission (PermissionID varchar)

(「フルアクセス」、「部分的」などを含む)これは、利用可能な権限のリストになります。

次に、パッケージを作成します。おそらく、ユーザー + パッケージを単なるパッケージとして結合します。

Package (PackageID int, PackageName varchar)

最後に、結合テーブルにデータを入力します。

PackagePermissions (PackageID int, PermissionID varchar)

ユーザーに PackageID を与えると、テーブル全体で付与されたアクセス許可にクエリを実行できます。

select PermissionID
from User
inner join Package 
  on User.PackageID = Package.PackageID
inner join PackagePermission
  on Package.PackageID = PackagePermission.PacakgeID

これにより、ユーザーの管理を最小限に抑えながら、時間の経過とともにパッケージを変更したり、パッケージを追加したり、新しいアクセス許可を簡単に追加したりできるようになります。

于 2012-05-03T19:11:16.440 に答える