cotonti.com : sql https://www.cotonti.com Последние сообщения в теме Cotonti en Sat, 10 Jan 2026 01:30:16 -0000 CTAPbIu_MABP пн, 27 апр 2009 14:43:15 -0000 Trustmaster
С удалением комментариев баг. Да, они требуют нормализации. Это потребует изменений везде, где комментарии используются (в т.ч. в плагинах), для ближайшего релиза проще устранить баг кодом com_code=p'.$id2, а в ренессансе посмотрим.

Triggers and stored procedures: they need to be integrated global. The same is about migrating to InnoDB (it is more reliable on huge databases but MyISAM is faster) and using foreign keys (foreign is not fulltext). Big changes need big thinking.

Comment removal is a bug. Yes, it needs normalization. It will require changes everywhere comments are used (including plugins). For 0.0.5 it is easier to fix the bug with com_code=p'.$id2, as for Renaissance we'll see.]]>
пн, 20 апр 2009 02:41:40 -0000
CTAPbIu_MABP пт, 17 апр 2009 19:05:54 -0000 Orkan пт, 17 апр 2009 08:44:07 -0000 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 
тогда надо позаменять все все вставки в html где генериться pid
$pid = sed_import('pid', 'G', 'ALP');
чтобы сюда приходили не строки типа p21 а числа типа 21
$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]]>
пт, 17 апр 2009 03:31:21 -0000