О подобной системе (такой как Facebook как система), использующей myisam Mysql
У меня есть одна проблема - "как система", такая как "Facebook как система".
Я сделал программу с использованием иностранного хостинга сайта, имеющего myisam mysql. Как вы знаете, MySam MySQL не имеет транзакционной системы. поэтому он не может установить ключ как внешний ключ для представления отношения или для установки ссылочной целостности
Я думаю, что "как система", то, что я делаю, важно для того, как представить и как установить целостность ссылки.
Например, я сделал контент A, и у него есть 3 лайка. если содержимое удалено, то, которое уже имеет, также должно быть удалено.
но в системе myisam mysql это невозможно. потому что Исам MySQL не может установить ссылочную систему целостности таблиц
по этой причине я сожалею о том, что выбрал систему myisam mysql на первом этапе.
Хотя я знаю, что inno DB может решить эти проблемы, я трачу много времени на этот проект.
Итак, как я могу установить систему ссылочной целостности для моего проекта (например, системы) или любым другим способом для решения этой ситуации?
1 ответ
Если вы не можете изменить ядро базы данных на Innodb
и хочу продолжить MyISAM
, триггеры будут полезны для вас.
Синтаксис
CREATE TRIGGER trigger_name
BEFORE DELETE
ON table_name FOR EACH ROW
BEGIN
-- variable declarations
-- trigger code
END;
пример
DELIMITER //
CREATE TRIGGER delete_likes
BEFORE DELETE
ON tbl_content FOR EACH ROW
BEGIN
DELETE FROM tbl_likes WHERE content_id = OLD.id;
END; //
DELIMITER ;
Допустим, у вас есть 2 таблицы с именем tbl_content
а также tbl_likes
, колонка content_id
в tbl_likes
это ссылка на id
колонка в tbl_content
,
Пример триггера с именем delete_likes
будет запущен перед удалением строки в tbl_content
и удалит связанные строки из tbl_likes
,