After some struggle in the design, I've finally decided to choose the current path:
separating the Data Access Layer and Business Logic Layer.
I've designed the database.
As I may only be able to upload one database to my free hosting site,
so I have to share the same database for all my future projects.
There will be some tables sharing among these projects:
The main tables for MyProjectManager are:
The reference tables include:
* ProjectApplicationType (whether Web application or Windows application)
* ProjectStatus (Not Started, On-going, Completed, On-hold, Terminated)
* TaskType (whether Project Task, Project Request or Project Bug)
I was confusing whether I should combine ProjectAttachment & TaskAttachment tables into one,
as they serve for the same purpose, except one for Project, another for Task.
Same go to ProjectMember and TaskAssignee.
Well, this is my first version of database design.
I really gotta get it up, and start work on it, otherwise it'll never end. ^_^
You may download the database diagram here:
(DatabaseDesign.zip : 19.4KB)