我在数据库中的每个表上都有 date_created 和 date_modified 列。
使用 MySQL 触发器在数据库中设置时间戳列与使用 PHP 在应用程序层设置时间戳列有什么优缺点?
在多台服务器上部署时,哪个更易于维护且时间同步性更好?
编辑: 既然 Johan 建议在数据库中设置时间戳是好的,那么这些实现是否正确? 另外,在每个表上都有 date_created 和 date_modified 是好习惯吗? 还是建议将它们添加到某些表中?
date_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
date_modified TIMESTAMP NOT NULL DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
最佳答案
数据库中的时间戳。
如果您在主从设置中进行复制,则会正确复制数据库时间戳(使用原始时间戳)。
您不(!)在触发器中设置时间戳。
您无需在表定义中指定它们,MySQL 将在插入和/或更新时自动设置正确的时间戳。
您只需在创建(或更改)表时设置一次即可。
再简单不过了。
关于php - 更新应用程序或数据库中的时间戳列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291104/