2014-07-25 3 views
0

대규모 도면 (40k)의 건축 도면을 추적하는 데 필요한 데이터베이스를 구축하고 있습니다. 각 도면에 대해 추적하려는 세부 정보 중 하나는 표시된 바닥 수입니다. 일부 도면에는 여러 개의 바닥이 있으므로이를 설명 할 수있는 방법이 필요합니다. 내 데이터베이스 이론은 최고의 속도가 아니므로 내 솔루션이 논리적 인 방법인지 확실하지 않습니다.Access 데이터베이스 이론/설계

내 솔루션은 각 바닥에 대한 레코드가있는 도면 기본 키와 새로운 층 테이블 사이에 일대일 관계를 만들고 층 이름의 세 번째 테이블을 일관성을위한 조회 소스로 사용하는 것입니다. I.E. 도면이 1 층과 2 층을 나타내는 경우 내 도면 테이블에 도면 기본 ID와 관련된 두 개의 레코드가 있습니다.

저는 모든 층마다 일대일 관계와 부울 필드를 고려해 보았습니다.하지만 일부 건물은 20 층 이상으로 구성되어 있기 때문에 많은 필드가 있고, 5 층 이상인 빌딩이 거의 없기 때문에 많은 필드가 NULL이됩니다. .

내 접근 방식은 적절한 해결책입니까? 감사!

+0

[정상화] (http://holowczak.com/database-normalization/)를 살펴보면 데이터베이스가 훨씬 안정적이고 유연 해집니다. –

답변

0

층 및 이름을 녹음 하시겠습니까? 나는 수년 동안 공사중이었다. 나는 몇 가지 새로운 테이블을 만들 것이다.

tblProject 
Project#(pk), ProjectName, ...(project details) 

tblSheetDetail 
SHEETID(seq), Sheet#(A1), Project#(fk), SheetTitle, 

tblTrades 
TradeID, TradeName, SpecCode 

tblFloor 
FloorID, Floor#, 

tblTradesSheetDetail 
TSDetailID,SheetID(fk), TradeID(fk), 

tblFloorSheetDetail 
FSDetailID, SheetID(fk), FloorID(fk) 

이제 어쨌든 상상할 수있는 데이터를 가져올 수 있습니다. 우리는 TradeSheet 세부 테이블이 가장 유용하다는 것을 알았습니다. 각 시트에 개정을 기록하는 테이블을 고려할 수도 있습니다.

행운을 빈다.

+0

고마워요. 제가 찾고 있던 것이 었습니다. 이미 프로젝트 용 테이블이 있고 As-Built 또는 100 % CD 레코드를 그룹화하는 세트가 있습니다. TradeSheet는 좋은 아이디어입니다. 분야에 대한 분야가 있지만 일부 도면은 조합이므로 솔루션이 훨씬 더 적합합니다. – Bill