2013-10-25 33 views
1

我有一个商业列表网站。我目前正在为用户建立一个界面来登录和更新他们的列表。PHP/MySQL - 编辑批准系统

我想实现的功能如下:

  1. 用户编辑列表,并提交
  2. 的编辑发送到管理员在此期间批准
  3. 现有的上市仍然在网站上
  4. 管理评论的编辑和审批

现在通常之前纠正任何错误像这样的事情可以通过在数据库中存储一个“重复”行来完成,并将一个标志设置为“挂起”。

但是,如果可能的话,我想尝试一种不同的方法,因为列表数据存储在多个表中,其中包含一个包含多个类别选择的表。

所以理想情况下,我宁愿不创建额外的数据库记录。有没有更好的选择我可以使用?

+1

也许只是一个链接表与原始记录ID和更新的数据序列化和存储? – Mattt

+1

你可以设计你的维基表,以便关系存储为序列化数组。它需要额外的处理,但它会保持在一张桌子上。 –

回答

0

实际上有两种不同的方法。

  1. 使用的数据库(相同的表,或者一些“挂起的更改”几乎相同的结构与原有的表中),尽管这种或那种方式它创造的记录。

  2. 不要使用数据库中的所有,但一些中间存储(键/值存储,消息队列,内存缓存,电子邮件,只是一些文件;凡是想到的;))

随着选项2你可以轻松完成,因为你的问题已经提到了2个评论者:创建一个数据结构并序列化这个结构,并将其存储在任何地方,直到管理员“批准”数据并在数据库中更新它。

乍一看,第二个选项当然会更快实现,尽管在数据库中实现它可以使您能够使用当前或状态标志“回滚”更改。其次,你想保持所有(相关)数据靠近在一起,以保持可维护性