2013-08-30 2 views
0

나는 조직, 사용자 및 그룹을 정의하는 몇 개의 테이블이 :
-기구 (ID, 이름)
- 사용자 (ID, 이름,기구)
- 그룹 (ID, 이름,기구)
사용자 및 그룹 제약 조건을 가진 사용자/그룹 구성원을 모델링하는 방법은 동일한 조직이어야합니까?

는 내가 난처한 상황에 빠진하고 사용자 및 그룹 사이에 제약이있는 GroupMembership 테이블을 추가하려고 할 때 :
- 내가 적용 할 데이터베이스를 싶습니다

GroupMembership (ID, 사용자, 그룹) 그 GroupMembership 테이블의 모든 레코드 User.Organization == Group.Organziation을 가져야합니다. 개념적으로 사용자는 관련 조직에서 정의한 모든/그룹의 구성원이 될 수 있습니다.

디자인 패턴이 있습니까?

+1

[많은 수의 약한 개체] (http://dba.stackexchange.com/questions/34040/many-to-many-and-weak-entities/34050#34050) –

답변

2

절차 적 논리로이 규칙을 적용하지 않으려면 을 GroupUser의 기본 키에 추가 할 수 있습니다. 그러면 Organization이 회원 교차로 테이블로 전파됩니다. 이렇게하면 선언적 참조 무결성을 사용하여이 제한을 부과 할 수 있습니다.

개인적으로 나는이 특정 규칙에 대해 DRI를 사용하는 것에 대해 두 번 생각할 것입니다. 이 작업은 수행 할 수 있지만 솔루션의 부작용은 원래의 문제보다 더 나쁠 수 있습니다.

관련 문제