使用myisamMysql的类系统(如类facebook系统)



我遇到的一个问题是"类似系统",比如类似facebook的系统。

我使用国外托管网站myisam-mysql制作程序。正如您所知,myisam-mysql没有事务系统。因此它不能像外键一样设置密钥来呈现关系或设置参考完整性

我认为我所做的"像系统"是重要的,如何呈现和设置引用的完整性。

例如,我制作了A内容,它有3个"赞"。如果内容被删除,就像已经被删除了一样。

但是在myisam-mysql系统中这是不可能的。因为isam-mysql无法将引用完整性系统设置为表

出于这些原因,我很后悔第一步选择myisam-mysql系统。

尽管我知道inno DB可以解决这些问题,但我在这个项目上花了很多时间。

那么,我如何为我的项目设置引用完整性系统(Like系统)或任何其他方法来解决这种情况呢?

如果不能将数据库引擎更改为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 ;

假设您有两个名为tbl_contenttbl_likes的表。tbl_likes中的列content_id是对tbl_content中的id列的引用。

名为delete_likes的示例触发器将在删除tbl_content中的行之前被触发,并将从tbl_likes中删除相关行。

相关内容

  • 没有找到相关文章

最新更新