【问题标题】:database for record system log or history用于记录系统日志或历史的数据库
【发布时间】:2013-04-13 17:30:20
【问题描述】:

首先我不得不说抱歉,我不知道它是调用系统日志还是系统历史记录。

我要实现一个需要填写各种表格的网络系统,我打算出一个表格来记录插入、更新、删除等所有单个步骤,包括旧数据和新数据。

我做了一些研究,但无法弄清楚。希望有人能给我一个指导。谢谢。

下面是我的表结构。

系统日志

Id (Pk)
editedby (int)
Module (var)
oldValue(text) 
newValue(text)
changeon(datetime)

假设所有输入都是

Array
(
    [column1] => male
    [column2] => beach
)

我打算使用php序列化将所有表单保存在数据库中。

我的问题

  1. 序列化是保存所有数据的好方法吗?
  2. 这个数据库结构足以恢复数据吗?
  3. 任何建议

** 我正在使用 php laravel 框架和 mysql。

谢谢。

【问题讨论】:

    标签: php mysql laravel laravel-3


    【解决方案1】:

    我觉得你的方法没问题。您的系统日志表可能会变大并且有很多写入内容。你应该注意选择像 InnoDB 这样的非阻塞引擎,最终甚至是archive engine

    在像 ArangoDB 这样的无模式数据库中,您不需要序列化数据,而只需保留不同版本的副本,对于 MySQL,我没有比您列出的序列化数据更好的主意。

    【讨论】:

    • 杰米感谢您的评论。对不起,我是数据库新手,因为我只体验过 mysql。可以给我建议,使用像 arangodb 或 mongodb 这样的 db 更好吗?因为我的数据库可能不高频使用,但重要的数据保存。
    • 在我看来,无模式数据库非常适合开发,所以如果您有时间学习新知识,不妨看看。但是在您的情况下继续使用 MySQL 是绝对可以的,因为您的序列化数据仅用于备份目的,它不是应用程序的核心。
    • 杰米,谢谢!我很感激你最友善的回答和建议。我会花一些时间来开发无模式数据库。
    • @Raywin 如果我的回答有帮助,请考虑接受它作为对遇到此问题的其他用户的帮助 :-) Thnx。
    • 只是补充一点,关于序列化数据。如果你取之前的数据集和当前更新的数据集,你可以区分这两个数组。您只需将差异存储在数据库中即可查看从创建到编辑到编辑到编辑等的变化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    相关资源
    最近更新 更多