2014-01-15 4 views
0

SaaS 제품에서 가장 효율적인 데이터베이스 디자인은 무엇이며 그 이유는 무엇입니까?역할 및 사용 권한, 역할 테이블 또는 여러 역할 허용 레코드에 사용 권한 집합 저장?


디자인 및 설계 : role.permissionsetdata 열이 CVS가 들어 두 개의 테이블

ROLE 
Id 
Name 
Description 
PermissionSetData 


PERMISSION 
Id 
Name 

: 세 개의 테이블

ROLE 
Id 
Name 
Description 

PERMISSION 
Id 
Name 

ROLEPERMISSION 
Id 
RoleId 
PermissionId 

Design2 (표준 방법은 역할 권한 테이블을 설계 할 수) 역할 레코드에 저장된 권한 세트의 (데이터베이스 저장 공간을 절약하면 성능에 도움이 될 수 있습니다.)

답변

0

해결책 1만이 유일한 해결책입니다.

  • 데이터베이스 저장 공간을 절약하는 것이 거의 항상 논점입니다. 합리적인 가격으로 TERA 바이트의 공간을 구입할 수있는 이유는 무엇입니까? kilo 바이트를 절약 해보십시오. (각 솔루션에 필요한 공간은 거의 동일합니다).

  • 두 번째 디자인의 다중 값 열은 proper database design을 따르지 않습니다.

  • muli-value 열의 데이터 검색은 적절하게 설계된 db보다 훨씬 복잡하고 비용이 많이 듭니다. 예를 들어 CSV 열을 적절하게 색인 할 수 없으므로 쉽게 가입 할 수 없습니다.