2014-01-16 4 views
0

저는 데이터베이스 디자인을 처음 사용합니다. 필자의 경우 제품 당 사용자 당 많은 키를 많이 생성해야합니다.데이터베이스 디자인에 대한 조언이 필요합니다.

  1. 모든 사용자에 대해 PRODUCT_ID와 키 하나 개의 테이블을 만들거나 내가이있을 것이다
  2. 은 전자의 경우 각 사용자

에 대해 별도의 테이블을 만듭니다 - 그래서, 나는 두 가지 옵션이 있습니다 단일 테이블이지만 모든 항목이 모든 사용자에 대해 동일한 테이블에 있으므로 쿼리하는 데 더 많은 시간이 걸릴 수 있습니다. 나중에 쿼리를 수행하면 결과는 더 빠르지 만 더 많은 테이블이 반환 될 수 있으며 사용자가 100 개 이상 교차하는 경우 많은 테이블을 의미 할 수 있습니다.

+2

_ 항상 하나의 테이블을 만듭니다. 데이터베이스는 신속하게 데이터를 쿼리하도록 설계되었습니다. – Ben

답변

2

확실히 각 사용자에 대한 표를 만들지 마십시오. 모든 사용자에 대해 단일 테이블을 작성하는 경우 관계형 데이터베이스 설계를 사용하고 주소 또는 직원 정보와 같은 각 사용자와 관련된 특정 정보를 추가하고 사용자 테이블의 기본 키를 외부 키로 사용할 수 있습니다. 눈에 띄는 지연은 없을 것입니다. 당신이 당신은 사용해야합니다 테이블 스키마입니다

user_product [table name] 

id [Primary Key] 
user_id [Reference key of user table] 
product_id [Reference key of product table] 
key 

아래처럼 테이블을 다음 사용자와 제품 간의 관계를 구축 할 수 있도록하려는 경우 및 유지 보수

1

훨씬 쉬울 것입니다.

각 테이블을 생성하면 데이터베이스 및 관계 관리에 더 복잡해집니다. 그래서, 위의 행 기본 형식을 사용하십시오.

도움이 될 경우 알려 주시기 바랍니다.

감사합니다.

+0

id 기본 키가 필요하지 않습니다. 기본 키로 (user_id, product_id)를 사용하면 잘 작동하고 조합이 고유 한 것으로 확인됩니다 (별도의 고유 키를 정의하지 않아도 됨). _do_는 product_id에 추가 색인을 추가하려고합니다. 기본적으로 색인이 생성되지 않기 때문입니다. – mrjink

+0

@ JigarChaudhary 답장을 보내 주셔서 감사합니다. 조언 만 필요했지만 이미 스키마가 있습니다. –

관련 문제