2012-01-30 9 views
1

시나리오에서 데이터의 특정 하위 집합을 제외시키는 최상의 설계 방법은 무엇입니까?데이터베이스 모델

데이터베이스 라이브러리 선반, 라이브러리, 사용자, 응용 프로그램 테이블이 있습니다. 하나의 라이브러리 선반에는 많은 라이브러리 파일이있을 수 있습니다. 각 응용 프로그램에서 사용자에게 파일을 연결하려고합니다. 한 응용 프로그램 아래의 사용자가 UserXLibraryShelf 테이블을 사용하여 라이브러리 파일에 액세스하도록 할 수 있습니다. 사용자가 어떤 선반을 사용할 수 있는지 말하기보다는 어떤 선반을 사용할 수 없을지 말하고 싶습니다. 대부분의 경우 사용자는 응용 프로그램 3 및 5에 대한 말을 제외한 모든 선반에 액세스 할 수 있습니다. 아마도 UserXNotAvailableShelf를 사용하여이 작업을 수행 할 수 있습니다. 하지만이 테이블은 look up table처럼 작동하며이 사용자에 대한 NotAvailable 테이블에 존재하지 않는 모든 선반을 가져와야합니다.

데이터베이스 설계에 예외 시나리오 (예외 제외)를 처리하는 가장 좋은 방법은 무엇입니까?

+1

룩업 테이블 접근법에있어 무엇이 잘못되었는지 확신 할 수 없습니다 ... – FrustratedWithFormsDesigner

+0

은 많은 레코드가있을 때 충분히 빠릅니까? 선반이 룩업 테이블에없는 파일을 가져와야 할 것입니다. –

+0

"많이"많이 있습니까? 이 시스템에서 얼마나 많은 데이터를 기대하십니까? 생성 된 데이터를 사용하여 몇 가지 간단한 테스트를 설정하여 많은 양의 데이터와 올바르게 조정 된 지표로 쿼리가 수행되는 방식을 확인할 수 있습니까? – FrustratedWithFormsDesigner

답변

2

'사용 가능'및 '사용 불가'모두에 대해 (기본) 테이블을 보유하여 모든 선반/사용자 통신이 해당 테이블 중 하나에 정확하게 들어갈 수 있도록하는 것은 전적으로 허용되는 설계 선택입니다. 그러나 업데이트 집약적 인 환경에서 그러한 디자인의 실용적인 문제가있을 수 있습니다. 추신. 당신은 다음 그룹과 함께 해당 선반을 사용자 그룹을 만드는 것을 고려 했습니까?

+0

예, 사용자 그룹당입니다. 이 그룹을 위해,이 선반들은 내가 결정한 것에 기초하여 이용 가능하거나 이용 가능하지 않다. 선반의 마스터 목록이 동일하기 때문에 둘 중 하나 또는 다른 것. 그래서 나는 사용할 수 없거나 사용 가능한 저장해야합니다. 사용할 수없는 것은 데이터의 저장 기간이 짧지 만 사용할 수있는 속도는 더 빠르며 간단합니다. 누군가는 항상 사용할 수 없는지를 확인하는 것을 기억해야합니다. 그것은 정상 흐름에 대한 예외입니다. –

0

이것은 일반적으로 MS-SQL의 역할을 사용하여 수행됩니다. 예를 들어 특정 선반 값을 제외하고 모든 선반을 포함하는 VIEW/PROC에 할당하고 다른 역할에 할당하는 VIEW 또는 PROCEDURE를 작성합니다. 사용자는 적절한 역할에 할당됩니다.

관련 문제