2012-06-18 2 views
0

사용자가 웹 사이트에 자신의 쿠폰 코드를 저장할 수있는 프로젝트를 진행하고 있으므로 최선의 방법을 알고 싶습니다.PHPMyAdmin 데이터베이스에 두 개의 테이블을 매핑하는 방법

userId | firstName | lastName | codeId 

을 그리고 나는이처럼 쿠폰 코드의 테이블을 가지고 :

codeId | codeNumber 

그래서 내가 할 수있는을

나는 다음과 같이 사용자와 한 테이블이 말할 수 있습니다 codeIduserId에 연결하면 누군가 쿠폰을 저장할 때 쿠폰 테이블의 codeId이 사용자 테이블의 codeId으로 들어갑니다.

하지만 이제 사용자가 여러 개의 쿠폰을 가지고 있다면 어떻게해야합니까? 사용자와 어떻게 연결되어야합니까? 1,2,3,4,5과 같은 사용자 테이블의 codeId에 쿠폰 테이블에서 codeId 저장

  1. ,

  2. 이 쿠폰 테이블에 새 행을 확인하고 연결 :

    나는이 할 수있는 어떤 옵션을 사용할 수 있습니다 쿠폰 테이블 userId에 다른 필드를 추가하고 쿠폰을 추가 한 사용자의 userId을 입력하여 사용자에게 코드를 추가하십시오.

두 가지 옵션 중 어느 것이 더 낫습니다.

+0

그래서 여러 사용자가 동일한 쿠폰 코드를 공유 할 수 있으며 각 사용자는 여러 코드를 가질 수 있습니까? (다 대 다 관계) –

+0

예,이 옵션은 웹 사이트에서 수행 할 수도 있습니다. – thegrede

답변

2

두 테이블 사이의 다 대다 관계를 연결하는 세 번째 테이블을 추가하여 해결해야 할 두 가지 : 내가 당신이라면

user_coupons 
- userId 
- couponId 
+0

에밀 감사합니다,이게 최선의 해결책이 될 것입니다. – thegrede

1

첫 번째 옵션은 1-NF 규칙에 위배됩니다. 여기서는 어떤 열도 값 그룹을 갖지 않는다고 말합니다.

이것은 일대 다 관계입니다. 두 번째 옵션 인 별도의 테이블 User_Coupons (밑줄 제외)을 만들고 각 연결에 대해 UserID, CouponCode가있는 행을 만듭니다. 함께 사용되는 두 개의 열은 모두 고유해야 연결 테이블의 기본 키가됩니다.

+0

일대 다가이 IMO의 나쁜 모델이므로 쿠폰 코드에는 관련 정보가 있어야합니다. 할인 된 제품/웹 사이트, 만료 날짜 등. 이는 중복 기록을 우회하는 역할을합니다. 사용자는 기존 레코드와 연결됩니다. many-to-many가 길이다. – aowie1

0

내 데이터베이스는 다음과 같습니다

userId | firstName | lastName 

codeNumber | userId 

당신 원하는 경우 모든 사용자에 대해 많은 codeNumber를 삽입 할 수 있습니다.

관련 문제