2016-07-09 5 views
1

메신저 데이터베이스를 실행할 응용 프로그램을 빌드하고 데이터베이스에서 일부 관계형 테이블을 갖지만 latelly는 다른 온라인 관계형 테이블을 온라인에서 다른 방식으로 보았습니다. 나는 내가 평소 방법의 작은 예제 및 기타 온라인 예를 떠날 위, 갈 수있는 가장 좋은 방법을 찾는 가장 좋은 방법과 희망은 무엇인가 :관계형 테이블 모범 사례

내 연습 : 다른

에서

users 
- id 
- role_id; 
- email 
- password 


roles: 
- id 
- title 

온라인 예

users 
- id 
- email 
- password 

role_user: 
- role_id 
- user_id 

roles: 
- id 
- title 

기본적으로 제 질문은 모범 사례와 확장 성 측면에서 더 낫습니까?

+0

여기에 좋은 질문이 아니지만 스키마는 근본적으로 다르며 두 번째 스키마는 사용자별로 여러 역할을 허용합니다. – pvg

답변

3

다 대다 또는 일대 다 관계가 필요한 경우에 따라 다릅니다. 첫 번째 예에서는 일대 다 관계입니다. 다시 말해, 사용자는 최대 하나의 역할 만 가질 수 있습니다. 두 번째 예에서 사용자는 많은 역할을 가질 수 있으며 많은 사용자에게 역할을 적용 할 수 있습니다.

사용자가 두 개 이상의 역할을해야하는 경우 두 번째 예제를 사용하십시오. 그렇지 않으면 첫 번째 예는 괜찮습니다. 당신은 RBAC 기능에 대한 분리 된 모듈을 필요로 할 때 두 번째는 보통 이런 식으로 .. 사용

1

intrinsecally 사용자 인증 모듈 관련이없는 역할과 관련된 aspcted ..

귀하의 솔루션은 공식적으로 올바른 butn입니다 모듈을 분리 된 상태로 유지하는 디자인을 고려하지 말아라.

0

단순한 말로하면 한 사용자가 여러 역할을 담당한다고 생각하면 '사용자'테이블의 'role_id'열이 불충분해진다. , 그렇다면 한 사용자가 하나의 역할 만 가질 것이라는 확신이 있다면 처음에는 괜찮습니다.

다른 사람과 함께 가십시오!