Коротко и мило:
У меня есть таблица с именами лиц, в которой хранятся экземпляры личной информации, используемой для различных целей.например, когда пользователь вводит данные нового места, он также вводит данные контактного лица.детали места хранятся в одной таблице, личные данные - в таблице персон, а идентификатор персон добавляется в таблицы мест для ссылки на две.
мои вопросы таковы: это плохая практика?в основном я вижу, что (согласно приведенному ниже примеру кода), я выполняю запрос вставки в таблицу лиц, нахожу максимальный идентификатор (делая предположение, что это идентификатор с информацией, которую только что добавил пользователь), а затем выполняювставить запрос в таблицу мест с включенным поисковым максимальным идентификатором
Я вижу, что это может быть потенциально опасно, если у вас есть несколько человек, вставляющих места, тогда потенциально вы можете возвращать и связывать неправильный идентификатор из таблицы персон.
Каков наилучший способ сделать это, сохраняя при этом личные данные в отдельной таблице.
$query = "insert into persons (perFirstName, perLastName, perAddr_Line1, perAddr_Suburb, perAddr_Postcode, perPhone_Landline, perPhone_Mobile, perEmail) VALUES ('$firstname','$lastname','$address_line1','$address_suburb','$address_postcode','$phone_landline','$phone_mobile','$emailaddress')";
mysql_query($query) or die();
if (!mysql_error()){
print "yes";
$perID = mysql_result(mysql_query("select max(callid) from persons"),0,0);
$query = "insert into volunteers (perID, volRoleID, volPoliceCheckCompleted) VALUES ('$perID','$role','$policecheck')";
}else{
print "no";
}