Database Schema - Checklist Project

I am working on a PHP project, and am looking at using code igniter as a framework. However, I can’t seem to get past the CAPTCHA at the code igniter forums, so I thought that I’d post the question here, since it’s really more of a general SQL question than a specific to a language or framework.

Right now, this project will be based off MySQL, but I’m willing to look at other database software (open source preferred) if it would make this project easier.

One of the tasks my program needs to perform is to create checklists that users can fill out online. Upon the completion of a checklist, it will be emailed to a small (2-12) group of people in a human readable format. Completed checklists should also be accessible to a group of “super users” through a web-based interface, with a timestamp for when the checklsit was completed, and the username that completed the checklist. From the admin panel, it needs to be easy to add, delete, edit, and categorize the various checklists that users can fill out. The ability to export a several hundred page PDF file of all the checklists completed in the past year (or other amount of time) would be a bonus. Basically, it needs to be easy to work with the completed checklists, to have an advantage over our current paper system.

I’m not too sure the best way to represent checklists in a table. The problem is if a checklist is edited, how would older versions of that checklist remain intact to provide an accurate view of what was accomplished at that particular time?

I’d really appreciate any guidance on a SQL schema for this project. I’m at a loss right now.


PS: If anyone is registered on the code igniter forums, could you ask if they can check the CAPTCHA over there? Maybe I’m just blind/stupid/(insert adjective) but I couldn’t figure it out. And I am human. Seriously.

I’ve been thinking about this project, and I’m not sure that a database is the best option. Right now, I’m thinking a better idea might be to generate an XML file for each completed checklist. These could be combined with a stylesheet or parsed using a PHP script:

<person>Name of Person</person>
<date>Date/Time of Completion</date>
<task description=“Do this task”>
This was done, that needs to be fixed.
<task description=“Do something else”>
This wasn’t done because of blah blah blah

I had a moderator move this topic, but it didn’t get any replies. I think this is mostly due to the fact that it was moved, but placed a few pages deep in the new forum.

I would really appreciate any advice on this project.


USers( userID, username, password, isActive);
CheckLists( checkID, tHistoryID, CompletionDate, userID);
CheckListsHistory( lastHistoryID, checkID, title, description, date_updated, date_added);