каскад
CTAPbIu_MABP |
|
---|---|
привет всем кто меня помнит.
я у вас код в движке видел
$sql = sed_sql_query("DELETE FROM $db_pages WHERE page_id='$id'");
$sql = sed_sql_query("DELETE FROM $db_ratings WHERE rating_code='$id2'");
$sql = sed_sql_query("DELETE FROM $db_rated WHERE rated_code='$id2'");
$sql = sed_sql_query("DELETE FROM $db_com WHERE com_code='$id2'");
можно разгрузить php от выполения 4 запросов и выполнять только 1 вы используете мускул 5.1 поэтому можно использовать тригеры если мне не изменяет память то $id2 == pid и имеер формат 'p'+db_pages.page_id для страниц так вот если разделить в db_com (db_ratings, db_rated тоже) поле com_code на два (я не помню точно но кажется префикс db_ надо заменить на sed_ )
ALTER TABLE `db_pages` ADD `com_item` VARCHAR( 255 ) NOT NULL
$pid = sed_import('pid', 'G', 'ALP');
$pid = sed_import('pid', 'G', 'INT');
$sql1 = sed_sql_query("SELECT * FROM $db_com WHERE com_id=$cid AND com_code='$pid' LIMIT 1");
$sql1 = sed_sql_query("SELECT * FROM $db_com WHERE com_id=$cid AND com_code='$pid' AND com_item='p' LIMIT 1");
и финал добавляем тригеры
ALTER TABLE `db_com`
ADD CONSTRAINT `db_com_ibfk_1` FOREIGN KEY (`com_code`) REFERENCES `db_pages` (`page_id`) ON DELETE CASCADE ON UPDATE NO ACTION;
-- и так же на db_ratings и db_rated
если решите воспользоваться советом но не сможете понять что и как я могу проконсультировать по gtalk мой ник CTAPbIuMABP(a)gmail.com |
|
This post was edited by CTAPbIu_MABP (2009-04-17 03:33, 15 years ago) |