MySQL多条件类型

时间:2019-03-15 19:56:52

标签: php mysql oop

我正在从头开始创建CMS。 我正在寻找一种根据特定条件在数据库中设置值的方法。

这里的上下文是我要保存社区已报告的已删除或已编辑评论的记录。 然后,我想查看这些日志/记录,但是我很难定义这些值是否被删除编辑。 (显然,这对于查看日志很重要)

这是我到目前为止插入日志的代码。

// Insert logs moderation
public function insertLogs($idCommentaire){
    $sql ="INSERT INTO logs(com_id, com_date, com_author, com_content, post_id) 
    SELECT com_id, com_date, com_author, com_content, post_id FROM 
    comments WHERE com_id = ?";
    $this->executeRequest($sql, array($idCommentaire));
}

现在,如果要对其进行修改删除,我想对其进行设置,具体取决于我称之为SQL的方法,以下是删除示例:

$this->admin->insertLogs($idCommentaire);
$this->admin->suppressCom($idCommentaire);

我已经从MySql中创建了一个新列ENUM(“已删除”“已修改”),但无法弄清楚如何用其中的数据更新此Logs表。

这是我正在考虑的SQL:

UPDATE logs SET type =("modified"OR"deleted") WHERE com_id = 70;

请注意,这不是一个好的编码,只是我想做的事情。

如果可以将所有内容组合到一个请求中,那么我在这里谈论的是纯MySQL。 否则,我会再设置1个请求,每个请求1个,但我不知道这样做是否真的很干净。

您对此有何建议和想法? 谢谢大家。

1 个答案:

答案 0 :(得分:0)

您的逻辑还不错。但是,我会注意几件事。

  1. TYPE是MySQL和大多数RDBMS中的保留字。挑 您的列的另一个名称,指示是否有帖子 修改或删除。

  2. 帖子至少还有一个状态;被批准,或者     已发布或“可以”,或您要调用的任何名称。所以如果你     创建一个名为的ENUM字段     SomethingOtherThanTypeThatStillMeansTypefoo或     post_status或其他内容,包括所有潜在状态的字段     您的数据可能已被删除,包括已删除修改已发布未发布_已发布已编辑 ,或者您认为系统在将来进行某些功能更新时可能会支持的任何功能。

  3. 您可以考虑在状态字段中使用INT类型。我是     认为这可能比ENUM快一点。