Re: Garbage Collection
| From: | Nathan Rixham | Date: | Thu, 05 Feb 2009 19:03:01 +0000 |
| Subject: | Re: Garbage Collection | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-287722@lists.php.net to get a copy of this message | ||
Dan Shirah wrote:
IMHO forget the active flag, replace it with a field "deleted" which is a timestamp, then you've got an audit trail of when the it was removed :) infact often seen three fields on every table, "inserted, updated and deleted" all timestamps and self explanatory. regards!Hi gang: A related question to my last "Clarity needed" post. I have a tutor table (showing all the tutors), a course table (showing all the courses), and a course-to-tutor table (showing all the instances of what tutor teaches what course). Okay, everything works. Whenever I want to find out what courses a specific tutor teaches OR what tutors teach a specific course, I simply search the course-to-tutor table and bingo out pops the answer. Now, how do you handle the situation when a tutor quits or when a course is no longer offered? If I search the course-to-tutor table for all the tutors who teach a course and find a tutor who is no longer there OR search the course-to-tutor table for all the courses a tutor teaches and find a course that is no longer offered, how do you handle the record? I realize that if either search turns up nothing, I can check for that situation and then handle it accordingly. But my question is more specifically, in the event of a tutor quilting OR removing a course from the curriculum, what do you do about the course-to-tutor orphaned record? As I see it, my choices are to a) ignore the orphaned record or b) delete the orphaned record. If I ignore the record, then the database grows with orphaned records and searches are slowed. If I delete the orphaned record, then the problem is solved, right? I just want to get a consensus of how you people normally handle it. Do any of you see in danger in deleting an orphaned record? Cheers, teddI guess that all depends. If you want some kind of historical log of what tutor taught which course and which courses have previously been offered then I wouldn't delete the records. Instead I would and something like a "Active" column and use simple "Y" and "N" vaules to mark each tutor or course as active and then just re-write your query to only pull tutor's/courses with the "Y" flag. That would give you a current listing of active courses and who teaches them, and also retain the historical data if it need to be referenced later.