2009-12-18 5 views
0

가 내가 내 데이터베이스와 같은 설정 한 :SQL이 가상 표

내가 (그래서 열 1 "transactionId는"그것이 수량 판매/거래 번호를 기록 자신의 테이블의입니다했다가 각 제품을, 2 열에는 "양입니다 ")

예) P-가 나타내는 P-효자손 ("제품 ")

겪은 각 트랜잭션의 레코드를 보유 매년 테이블도 있습니다

. 이 테이블 각각은 "transactionID", "날짜", "시간", "pt_CA", "pt_DB", "pt_VC", "pt_MC", "pt_CH", "pt_AM"

예 : sales-2008, sales-2009 등.

새 테이블을 포함하도록 테이블을 변경하지 않고도 매년 모든 레코드를 보유하는 단일 테이블을 참조 할 수 있습니다. . 예를 들어, 나는 "P-효자손 '에 대한 모든 트랜잭션을 조회 할 거라고 그래서

, 나는

SELECT sales-2008.date, sales-2009.date 
    FROM sales-2008, sales-2009 
WHERE sales-2008.transactionID = p-backScratcher.transactionID 
    OR sales-2009.transactionID = p-backScratcher.transactionID 

을 입력 할 필요가 싶지 않아 ... 오히려 :

SELECT sales.date 
    FROM sales 
WHERE sales.transactionID = p-backScratcher.transactionID 
+0

이 디자인은 작업하기가 다소 어려워 보입니다. 다른 사람들보다이 디자인을 선택하는 것이 더 쉬운 이유가 있을까요? –

+0

첫 번째 생각은 모든 것을 하나의 테이블에 포함시키는 것입니다. 여기서 "pt_AM"열을 지나면 제품의 수량이됩니다.기본적으로 언제든지 그런 식으로 할 수 있는데 결국에는 장기적으로 열이 부족하게됩니다. 각 제품에 대한 테이블을 확보하면 다음과 같은 결과를 얻을 수 있습니다. a) 초과 null 항목이있는 테이블이 없으며 b) 조회 시간이 매출을 연도별로 분리하여 짧아집니다. 보고서는 일반적으로 매월 또는 특정 연도에 생성되는 것으로 간주됩니다 (게시 된 우려로 인해 모든 거래 정보를 단일 테이블로 통합 할 예정 임). – JakeTheSnake

답변

2

새해를 포함하도록 테이블의 sql을 변경하지 않고도 매년 모든 레코드를 보유하는 단일 테이블을 참조 할 수 있기를 바랍니다.

이 이유 때문에 제품 당 하나의 테이블과 1 년에 한 개의 테이블을 사용하지 않아야합니다.

'제품'테이블 하나와 '거래'테이블 하나만 있으면됩니다.

+2

정확합니다. 이것은 나쁜 디자인입니다. –

1

찾고있는 것은 올바른 형식의 결과 목록 인 저장 명령문 인 "보기"입니다. 테이블과 같이 직접 쿼리 할 수 ​​있습니다. SQL에서

4

, 카일의 응답 상태로, 당신은 보기 가상 테이블의 일종이다를 만들 수 있습니다,하지만 난 강력하게 당신이 책, 또는 구글, 관계형 데이터베이스 설계를 얻을 추천 할 것입니다, 데이터베이스 구조에 커밋하기 전에.

-2

이 프로젝트의 규모 또는 특정 요구 사항 (예 : 코드가 연결된 경우)은 확실하지 않지만 MS SQL (또는 MySQL 등)으로 데이터를 마이그레이션하는 것이 좋습니다. SQL Server에는 무료이지만 제한된 기능 세트 만 지원되는 데스크톱 버전이 있습니다 (보기가 포함되어 있음).

MySQL, PostGre 등은 PostGre의 상속 된 테이블을 포함하여 원하는 기능을 지원합니다 (꼭 필요한 것은 아니지만 비슷 함).

잠시 동안 Access에서 작업하지 않았으므로 찾고있는 기능을 지원할 수 있는지 확신 할 수 없습니다.

+0

왜 "액세스"가 적절한 테이블 디자인을 지원하지 않을 것이라고 생각하십니까? –

+0

실제로 그가 찾고있는 기능을 지원하는지 확실하지 않다고 말했다. 나는 wouldnt 할 것이라고 말하지 않았다. – GrayWizardx