1.) I have a DB where each entry represents a task.
And out of several dozens or even a hundred of task, there will be a special task (which is a milestone)
So, in this case, I have very few entries that requires an extra field to separate them from the majority.
I don’t want to create a second table, because this is the only fields that makes these milestone stone special, they share a lot of other fields with regular tasks entries.
Should I create another field just to hold a few TRUEs while the rest are FALSE by defaul
2.) For each of those tasks, it has a variable number of performers (depending on user input)
(To further things, each performer has multiple sub-performers of its own.) So I essentially am using a DB to describe a TREE structure.The way I have it now is, I will have 5 copies of the same task info if there are 5 performers, and occupy 5 entries. Is this the way to go if I’m not going to have more than 10,000 entries (incl. copies) in my DB
Thank you
This should clarify it
-
Task1 (this is a milestone task)
- performer1
- sub-performer ID=21
- sub-performer ID=542
- performer2
- performer1
-
Task2 (this is not a milestone task)
- performer2
- sub-performer ID=231
- performer2
Subperformer and performer are completely different group. No overlap at all. Subperformer are the group that provide inputs to performer, so performer can complete the task they’re assigned to.
I am not sure if this is what you want:
tblTask with columns taskID, isMilestone, and everything you need.
tblAgent with columns agentID and everything you need (these will be the (sub-)performers).
tblPerformance with columns fk_agentID, fk_task
tblSubperformance with columns fk_agentID_performer, fk_agentID_subperformer
Being fk_ foreign keys referencing