2009-11-21 2 views
0

본질적으로 링크 모음 인 사이트가 있습니다. 사용자, 링크 및 투표를 저장하는 mysql 데이터베이스. 내 링크 테이블에는 두 개의 외래 키, user_id 및 vote_id가 있습니다. 링크가 데이터베이스에 삽입되면 하나의 투표로 시작하므로 투표 테이블에 행을 삽입해야하지만 기본적으로 서로 의존하여 존재하게됩니다. 투표 테이블의 외래 키에 대한 링크 ID가 필요하며 그 반대의 경우도 마찬가지입니다. 현재 나의 "계획"은 vote_id가 0 인 링크 행을 삽입하고 동일한 행을 선택하여 ID를 얻은 다음 링크 행 ID를 외래 키로 사용하여 투표 행을 삽입하고 ID를 선택하고 원래 링크 행을 업데이트합니다. . 이것은 실제로 비효율적 인 것처럼 보이지만 시간을 절약하고 중복 투표를 제거하기 위해 사용자 투표를 기록해야합니다. 내가 잘못된 방향으로가는거야?서로 의존하는 두 개의 행을 삽입하는 가장 효율적인 방법

답변

1

PHP에서는 mysql_insert_id를 사용할 수 있습니다

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 

당신은 새로 삽입 된 링크의 행 ID를 얻기 위해 이것을 사용할 수 있습니다.

하나의 투표가 하나의 링크에만 속할 수 있다고 가정하면 링크 테이블에는 vote_id 열이 없어야합니다. 따라서 새로 삽입 된 투표의 신원은 필요하지 않아야합니다.

+0

와우, 하하, 당신은 절대적으로 맞습니다. 고맙습니다! 내가 무슨 생각을하는지 전혀 모르겠다! –

관련 문제