2012-05-03 3 views
-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

Что? Это не имеет никакого смысла. О чем вы спрашиваете? Некоторый контекст поможет. – Oded

ответ

3

Вы бы лучше всего, имея таблицу разрешений:

Permission (PermissionID varchar) 

(Содержит такие вещи, как «Полный доступ», «Частичный» и т. Д.), Который будет списком доступных разрешений.

Затем создайте пакеты: Я бы, вероятно, объединить User + Пакет, как только пакеты

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 

Это дает возможность изменять пакеты с течением времени, добавлять пакеты и добавлять новые разрешения легко, все время держа администрацию пользователей к минимуму.

Смежные вопросы