2012-09-17 2 views
0

데이터베이스 구조에 관한 간단한 질문입니다. 여러 역할을 관리해야하지만 사용자가 자동으로 할당되는 하나의 기본 역할 만 있으면됩니다.데이터베이스 기본 열

어떻게 DB에서이 기본 퍼가기를 저장할 것인가? 그게 뭔가?

ID  | Name | IsDefault 
----------------------------- 
1  | Admin | no 
2  | User | yes 

그렇다면 하나의 역할 만 기본값으로 표시되는지 어떻게 확인할 수 있습니까?

감사합니다 당신이 IsDefault 열 제약 조건을 확인, 예를 들어있을 수 있으므로 그냥 yes 또는 no 수 있습니다 Oracle의

+0

어떤 RDMS를 사용합니까? 예를 들어, Oracle에서 함수 기반 고유 인덱스를 가질 수 있습니다. SQLServer는 필터 된 고유 인덱스를 정의합시다. – a1ex07

+0

Oracle 11g를 사용하고 있습니다. – Daffi

답변

1

. 그런 다음

CREATE UNIQUE INDEX IDXU_TABLE1_ISDEFAULT ON table1(CASE WHEN IsDefault ='yes' THEN IsDefault ELSE NULL END);

+0

thats clear, 모든 역할에 하나의 기본값 만 포함되어 있는지 확인하고 싶습니다. – Daffi

+0

고유 인덱스를 사용하면 레코드를 삽입/업데이트 할 수 없기 때문에 isDefault = 'yes'인 행이 2 개 없을 것입니다. 네가 원하는게 아니야? 죄송합니다. 질문을 오해 한 경우. 당신은 많은 행'IsDefault = 수 'no''을하지만, 한 그것은 어디' '예 ... 좋아 – a1ex07

+0

는 그때, 임 미안 해요 당신을 misunderstodd. 내 문제를 해결해 주셔서 감사합니다! – Daffi