android - 关于点赞系统(比如facebook点赞系统)使用myisam Mysql

标签 android mysql myisam referential-integrity social-media-like

我遇到的一个问题是“类似系统”,例如 facebook 类似系统。

我使用具有 myisam mysql 的外国托管站点制作程序。 如您所知,myisam mysql 没有事务系统。 所以它不能像外键那样设置键来呈现关系或设置引用完整性

我认为我制作的“像系统”很重要,重要的是如何呈现以及如何设置引用完整性。

例如,我制作了 A 内容,它有 3 个“赞”。如果内容被删除,喜欢已经有的也要删除。

但是int 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 ;

假设您有 2 个表,分别名为 tbl_contenttbl_likestbl_likes 中的列 content_id 是对 tbl_content 中的 id 列的引用。

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

关于android - 关于点赞系统(比如facebook点赞系统)使用myisam Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563977/

相关文章:

java - AMR帧大小计算

Android 模拟器不显示应用程序 - 它只显示皮肤

mysql - 有没有办法在 MySQL 中组合两个聚合函数以获得不同的值?

php - 如何从 mysql 返回最接近的值

MySQL InnoDB 行锁定意外为零

mysql - 这种情况需要使用 InnoDB 还是 MyISAM?

android - 什么是 Android 中的空闲模式

java - 通过 OSMDroid 使用在线存储中的 MBTiles

mysql - 子查询返回的结果与单独调用时不同

mysql - MyISAM 和 InnoDB 有什么区别?