【问题标题】:About like system (such as facebook like system) using myisam Mysql关于使用myisam Mysql的like系统(如facebooklike系统)
【发布时间】:2015-11-06 09:55:03
【问题描述】:

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

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

我认为我所做的“类似系统”对于如何呈现以及如何设置参考完整性很重要。

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

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

出于这些原因,我后悔当初选择了myisam mysql系统。

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

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

【问题讨论】:

  • 切换主机系统。

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


【解决方案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_contenttbl_likes 的表。 tbl_likes 中的content_id 列是对tbl_content 中的id 列的引用。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多