2010-07-11 4 views
0
tbl_product 
Name | Creator | UID | Salerank 

tbl_price 
Supplier | Price | UID 

나는 제품을 삽입하고 별도의 테이블에 여러 가격을 삽입하고자한다. 두 테이블 모두 자동 증가 필드가 이상적으로 동일한 UID를 갖는 것을 어떻게 보장 할 수 있습니까? 나는 MySQL과 함께 PHP를 사용할 것이다.여러 테이블에 MySQL 삽입 (관계형)

감사합니다,

J

답변

5

UID를 products 테이블의 auto_increment 기본 키가 아니라 가격 테이블의 일반 기본 키 (auto_increment 없음)로 설정합니다. 제품을 삽입 한 후 PHP 명령 mysql_insert_id()을 사용하십시오. 그러면 제품 테이블에서 생성 된 UID가 될 마지막 쿼리에서 생성 된 ID가 생성됩니다. 변수를 지정하고 가격 테이블의 insert 문에 사용하십시오. 외래 키 관계를 인공/대리 키를 사용하여

http://php.net/manual/en/function.mysql-insert-id.php

+0

+1 :있다 가격 테이블에 대해 별도의 기본 키를 만드는 데 아무런 해가 없습니다. 대신에 하나 이상의 복합 키를 사용할 수도 있습니다. –

+4

tbl_price.UID 참조를 tbl_product.UID를 외래 키로 사용하고 InnoDB를 사용하는 것을 잊지 마십시오. 외국 열쇠 수표는 당신의 친구입니다! – Charles

+0

@OMG, 오른쪽. 나는 가격 테이블에 프라이 머리 키를 사용하지 말 것을 말하지 않았고, 단지 auto_increment가 아니었다. @Charles, Agreed. +1 – desertwebdesigns

0

제품과 가격 예를 들어, 사용하여 인서트를 삽입합니다 UID에 대한 GUID를 사용하거나 더 나은 관련 제품 UID를 조회 할 제품의 이름 (고유하다고 가정).

+0

이름을 변경할 수 있기 때문에 더 나은 생각입니다, 당신의 위험에서 설명 텍스트에 등 고유 한 이름을 연관 필요 ... –

관련 문제