2012-06-27 2 views
1

mysql에 대해 두 개의 테이블이 있다고 생각했습니다. 하나는 로그인 정보 저장 용이고 다른 하나는 배송 주소 용입니다. 그것은 전통적인 방식입니까 아니면 모든 것이 하나의 테이블에 저장됩니까? 두 테이블의mysql에 고객 데이터를 저장하는 방법 (2 테이블 대 1 테이블)

... I가 배송지 잡아 동일한 ID를 참조 할 수 있도록 테이블 B에 자동으로 복사 테이블 A로부터 열을 방법 ...

+0

고객은 단일 배송지 주소를 가질 수 있습니까? 아니면 여러 개의 배송 주소를 사용할 수 있습니까? – Rocky

+0

지금은 단일 주소. 체크 아웃 할 때마다 업데이트 할 수 있습니다. –

답변

0

그것 경우가있다 이 매번 업데이트 될 것입니다 경우 하나의 주소와, 당신은

**Customer** 

customer_id [pkey] 
customer_name 
login_id 
password 
shipping_address 

같은 단일 테이블 뭔가를 할 수 있습니다 당신이 다음 (여러 방문에서) 단일 고객에 대한 모든 배송 주소를 저장하려면 반면, 다른 테이블 customer_shipping_address를 갖는 것이 좋은 디자인이 될 것입니다.

**Customer** 

customer_id [pkey] 
customer_name 
login_id 
password 

**Customer_Shipping_Address** 

customer_id [fkey to customer] 
shipping_address 
+0

customer_shipping_address에 기본 배송 주소를 식별하는 추가 플래그가 있으면 좋은 기능입니다. – Rocky

0

이것은 1 개의 테이블 또는 2 개의 테이블 사용에 관한 귀하의 질문에 대한 내 대답입니다. 이 결정은 요인에 달려 있습니다. 그러나 나는 당신이 2 개의 분리 된 테이블을 사용해야한다고 제안 할 것이다. 로그인 정보는 검색 정보가 배송 정보와 매우 자주 비교되기 때문에 이제 한 테이블에 모든 정보가 있으면 테이블 크기가 커지고 사용자의 로그인 정보가 필요할 때마다이 거대한 테이블을 쿼리해야합니다.

0

두 테이블을 사용하면 더 좋은 방법이라고 생각합니다. 그런 다음 배송을 원하면 그냥 가입하십시오. 그와 같은 SQL은 다음과 같습니다.

SELECT 
table1.id, table2.id, table2.somethingelse, table1.somethingels 
FROM 
table1 INNER JOIN table2 
ON table1.foreignkey = table2.primarykey 
WHERE 
    (some conditions is true) 

위의 코드는 배송 페이지 자체에서 실행해야합니다.

관련 문제