2009-09-17 4 views
1

메신저 프로젝트에 적합한 제품을 주문하는 데 도움이되는 간단한 액세스 응용 프로그램을 개발 중입니다. 제품을 담은 각 계약자를위한 테이블이 있습니다. 나는 제품과 관련된 테이블 "좋아하는 제품"을 가지고 있으며 언제 어떻게 사용해야하는지 추가 정보를 제공합니다.여러 테이블에 동일한 레코드를 저장

일반적으로 contractor-column이있는 큰 테이블 (모든 제품 포함)이 있습니다. 내가 가장 좋아하는 제품 테이블은 제품과 쉽게 관련 될 수 있습니다. 하지만 여기에 제품을 별도의 테이블에 보관해야합니다. 그래서 내가 좋아하는 제품 테이블을 계약자 테이블의 제품과 연결하는 가장 좋은 방법은 무엇일까요?

감사합니다 :) 난 후 계약자 테이블, 제품 테이블을 만들고 것

+0

호기심, 왜 별도의 테이블이 필요합니까? – JeffO

+0

동일한 엔티티에 대한 데이터를 저장하기 위해 별도의 테이블이 필요하지 않습니다. –

+0

-1 정답을 모두 거절하는 경우 질문 할 필요가 없습니다. –

답변

1

이것은 최상의 디자인이 아닙니다.

당신은 UNION 모든 계약자 테이블 함께 그 결과에 JOIN 수행해야합니다

SELECT * 
FROM (
     SELECT product 
     FROM contractor1 
     UNION ALL 
     SELECT product 
     FROM contractor2 
     UNION ALL 
     … 
     ) c 
JOIN favorite f 
ON  f.product = c.product 

당신이 더 나은 필드로 contractor 사용하면 제품에 대한 하나 개의 테이블을 유지한다.

쿼리하고 관리하는 것이 훨씬 쉬울 것입니다.

+0

새로운 가격 목록이 계약자로부터 도착하면 all_products 테이블을 업데이트하는 스크립트를 작성하는 것이 좋다고 생각합니다 ... 여러분 께 감사드립니다. –

1

대다 제품에 연결된 테이블 계약자. 또한 제품을 하나 이상의 계약자가 올 수있는 제품에 대한 다 대 다 계약자를 제품 링크로 사용할 수있는 즐겨 찾는 제품 테이블을 만들 수 있습니다.

+0

나는 그것을 원하지 않는다. 나는 contrators (많은 contrators)에서 xls로 가격 목록을 얻는다. 1 년에 최대 5 번. xls는 데이터베이스에 플러그인 된 액세스 (쉽게)로 변환됩니다. 큰 테이블에서 모든 제품을 삭제하고 새로운 제품을 다시 넣어야합니다. ID는 오히려 그들이 깨끗한 방법이 있다면 separeted 유지 ... –

+0

가격 목록은 제품의 주요 목록에서 별도로 처리해야합니다, 그들은 날짜와 가격으로 취급해야한다 그래서 당신은 테이블을 가지고있다 제품 ID, 해당 날짜의 데이터 및 해당 날짜의 가격 –

+0

카를로, 모든 계약자의 모든 제품을 하나의 테이블로 결합하면 인생이 훨씬 쉬워집니다. 그렇지 않으면 각 계약자에 대해 여러 양식과 쿼리를 생성하게됩니다. 곧 진짜 못 생길거야. –

0

그러면 Contractor, Product 및 Contractor_Product 테이블을 갖게됩니다. (사이비-SQL에서)처럼 뭔가 :

create table Contractor { 
    id int primary key, 
    name varchar(50) not null, 
    ... 
} 

create table Product { 
    id int primary key, 
    name varchar(50) not null, 
    ... 
} 

create table Contractor_Product { 
    contractorid int references Contractor(id), 
    productid int references Product(id), 
    ..., 
    primary key contractorid, productid 
} 

지금, 나는 당신이 "즐겨 찾기"테이블에서 원하는 것을 100 % 확신한다. 그것은 테이블이 아니라 쿼리 일 수 있습니다. 또는 Contractor_Product 테이블과 비슷한 테이블을 원할 수도 있습니다. 또는 Contractor_Product 테이블의 다른 "isfavorite bool default = false"열을 사용 하시겠습니까?

희망 하시겠습니까?

관련 문제