Cur*_*urt 4 recycle-bin sql-server-2005
我正在构建一个内容管理网站,其中还包括其他功能.当管理员通过管理面板删除项目时,我希望将此项目移动到"回收站"30天(然后自动删除).
实现此功能的最佳方法是什么?
我的一个想法是在我的表中有一个'Deleted'位列,然后只显示记录WHERE Hide=0.然而,这意味着必须记住每次我从桌子上放置这个条件SELECT.
我的另一个想法是有一个第二个表,记录将在删除时移动到.但是我在我的网站中使用了很多表,因此这意味着表的数量加倍,并且具有重复的表结构(这可能会导致将来出现一致性问题).
理想情况下,我希望有一个"RecycleBin"表,将所有记录移动到该表,但这可能包含100个列,以便能够存储来自所有不同表的数据.
如果有人有任何其他想法,将非常感激.
谢谢.
我知道的大多数实现都使用一个deleted列(不是布尔值,而是一个时间戳,所以你可以告诉它什么时候被删除).是的,您需要将此添加到您的所有查询中,但是您可能正在使用ORM层,因此您只需添加一次?我建议走这条路.
维基百科对他们文章的当前版本和归档版本使用多个表格,但这是因为它们非常庞大,并且比旧版本更频繁地请求当前版本.
如果要使用一个RecycleBin表,可能需要考虑序列化行并将它们放在value列中而不是存储所有单独的列.当然,这只有在您不需要查询已删除项目的各个列的内容时才有效,因为这将非常昂贵.
| 归档时间: |
|
| 查看次数: |
2911 次 |
| 最近记录: |