Author |
Topic |
|
bax
Junior Member
141 Posts |
Posted - 21 August 2002 : 01:31:22
|
Because of the way our sites are designed, I need to ensure full data integrity. In other words, even if site adminstrators delete stuff, I need a record of it for later analysis. So, in the current version of Snitz, when stuff gets deleted by authors or moderators, it's gone forever. Topics, replies, etc. Gone. Not archived, just gone (at least, that's my understanding looking at the code). I don't want that.
So, I created 4 backlog tables (think I need one more for subscriptions), so that when a user deletes something, it is gone from the website, but not gone forever.
Backlog tables currently exist for category, forum, topic, reply. These tables are mirrors of their live tables, with one additional field, DATE_DELETED, which contains information about the date that this item was deleted (I should include WHO deleted it as well, but there's no easy way to do that).
The items are moved via INSTEAD OF triggers (had to use these because there are ntext columns in the tables, so normal triggers don't work). Therefore, this code is only supported with SQL Server 2000. I hope this is useful to someone. Nice thing about it is you don't have to touch the forum code, so if it changes, you're fine. If someone knows an easy way to add in the user who deleted this, that'd be cool. I can't think of one without changing forum code. Please let me know if this is useful.
Bryan
Backlogs can be downloaded from here: http://bax.kleinbuendel.com/snitzStuff/forum_backlogs.sql |
|
dayve
Forum Moderator
USA
5820 Posts |
Posted - 21 August 2002 : 01:57:57
|
when I had 3.1SR4 I changed the code so that it did not delete the post but instead wrote a flag to a new field I created. Then I changed my SQL statement so that it would appear to be deleted to the members but admins would still see the post.
I plan on implementing that again here shortly.. |
|
|
|
Etymon
Advanced Member
United States
2385 Posts |
Posted - 21 August 2002 : 02:11:00
|
Hi bax!
I am 100% with you on this one. Never liked the idea of losing important info especially for security reasons.
Questions: When you said, "So, in the current version of Snitz, when stuff gets deleted by authors or moderators, it's gone forever. Topics, replies, etc" are you referring to your current version or the new current version v3.4? Since v3.4 just came out I want to make sure which one you are speaking of.
Also, in the download you provided ... it's only for SQL, right? Do you have a variation for Access 2000?
Otherwise, I am very happy to see this MOD come to the board. Thanks so much for sharing it with us!
Cheers,
Etymon
|
|
|
bax
Junior Member
141 Posts |
Posted - 21 August 2002 : 02:23:19
|
Etymon:
Dayve's idea is the same type of thing. Dayve, you're basically just using a valid time stamp, and then only selecting items that are currently valid, correct? I thought about this approach, but that would involve changing all kinds of forum code, and I didn't want to do that (particularly since it seems to change quite often). However, if I ever DO want to implement the "deleted by" functionality, I'll probably have to. What I've created is basically a separate approach, that can be implemented without mucking about with the forum code. Since the forum code will CONTINUE TO CHANGE, I wanted an approach that will exist in perpetuity, so everytime I make an upgrade, I don't have to go change all this code.
Etymon: No, I don't work with Access 2000, this is SQL only. Anything I make will only be tested on SQL Server. If you want to do an Access version, I think you're going to have to use Dayve's approach, as I don't believe it can handle triggers and such. However, I could be wrong, and it wouldn't be the first time.
As for when I said, "in the current version", I meant the version that has been released publicly. When stuff is deleted from it, it's gone forever. What I have released helps prevent that.
Bryan |
|
|
bax
Junior Member
141 Posts |
Posted - 21 August 2002 : 02:24:19
|
Dayve:
How extensive were the code changes you had to make? Seems to me you'd have to change every select statement thruout the forum code? |
|
|
Etymon
Advanced Member
United States
2385 Posts |
Posted - 21 August 2002 : 02:27:08
|
Thanks for the explanation, bax. It's still a nice MOD.
Dayve, could you please help me out with this conversion into Access 2000?
|
|
|
bax
Junior Member
141 Posts |
Posted - 21 August 2002 : 03:11:38
|
Etymon:
One thing you could do quickly for Access 2000. It wouldn't allow admins to still see the posts, tho - basically, this is the way to implement what I've done "by hand". Create same tables that I created. Then, find where the delete happens in the forum code (all in pop_delete, I believe). Before you delete something, insert it into the correct backlog table, then delete it. This is basically what the trigger does, just does it without me having to touch the forum code.
This works a bit different than what Dayve is doing (if I understand what you're doing Dayve), as his allows admins to still see stuff. However, this method would also require a lot less updating when the forum code changes. |
|
|
bax
Junior Member
141 Posts |
Posted - 21 August 2002 : 03:47:40
|
Actually, my stuff isn't yet complete. Basically looks like every table needs a backlog to really work properly.... |
|
|
|
Topic |
|
|
|