나는 영업을위한 몇 가지 판매를 추적하기 위해 아주 간단한 사이트를 만들고 있습니다. 여기에는 각 항목에 대해 여러 테이블이있는 mysql 데이터베이스가 포함됩니다. 대부분의 경우 관계가 끊어지고 건조합니다. 그러나, 나는 같은 판매에 대한 여러 의견을 저장합니다 코멘트 테이블이 있습니다. 내가 주요 판매 테이블의 ID에 묶여 주석 테이블에 외래 키가 있습니다. 동일한 판매 ID에 대해 여러 총 금액을 저장한다는 점에서 총 테이블과 판매 테이블간에 유사한 배치가 있습니다. 이들을 데이터베이스에 삽입하는 가장 좋은 방법은 무엇입니까? 현재 댓글을 삽입하고 해당 행의 ID를 가져온 다음 총칭을 삽입하고 ID를 가져온 다음 댓글 ID와 총 ID를 사용하여 판매 테이블에 삽입합니다. 5 개의 쿼리를 작성하는 것보다 효율적인 방법이 있습니까?PHP MYSQL 데이터베이스 구조, 하나의 엔트리에 대한 다중 쿼리
- 수정 : 여기 현재 코드가 있습니다. 나는 이것에 대해 아주 새롭기 때문에 나는 당신이 의미 한 것을보기위한 절차를 찾아야 만했다. 그것은 기본적으로 내가하고있는 것처럼 보이지만, 그 대신에 가장 효율적인 방법을 찾으면 내가 할 수있는 방법을 만드는 것입니다.
//Prepare the Queries
//Insert Gross Amounts Query
$grossQ = "INSERT INTO gross (commGross, storeGross, manGross, fiGross, flatGross) VALUES ('$commGross', '$storeGross', '$manGross', '$fiGross')";
//Insert Comments Query
$commentsQ = "INSERT INTO comments (comment, dealcomment, grosscomment) VALUES ('$otherComments', '$dealComments', $grossComments')";
//Insert Deal Query
$q = "INSERT INTO sales (make, model, location, vehtype, saletype, manager, county, flat, unitcount, armoramount, controlnumber, salesman, stock) VALUES ('$make', '$model', '$location', '$vehType', '$saleType', '$managerName', '$county', '$flat', '$unitCount', '$armorAmount', '$controlNumber', '$salesmanName1', '$stock')";
//Make database connection
$db = new db('palm_sales');
//Execute gross query and get the id of the row
$db->execute($grossQ);
$grossID = $db->getLastID();
//Execute comments query and get the id of the row
$db->execute($commentsQ);
$commentsID = $db->getLastID();
//Build Main Query
$q = "INSERT INTO sales (make, model, location, vehtype, saletype, manager, gross, comments, county, flat, unitcount, armoramount, controlnumber, salesman, stock) VALUES ('$make', '$model', '$location', '$vehType', '$saleType', '$managerName', '$grossID', '$commentsID', '$county', '$flat', '$unitCount', '$armorAmount', '$controlNumber', '$salesmanName1', '$stock')";
//Execute Main Query
$db->execute($q);
if(mysql_affected_rows() > 0)
{
echo "Success!";
}
else echo "Error: ".mysql_error();
저장 프로 시저를 작성할 수 있습니까? –
코드를 게시 할 수 있습니까? 가장 효율적인 방법은 procudere와 트리거 사이에 삽입을 분할하는 것일 수 있습니다. –
저장 프로 시저를 작성하거나 SQL 트랜잭션을 사용하여 모든 것이 정상인지 확인하십시오. –