What you describe is basically the default "Resources" mode:
http://doc.daypilot.org/scheduler/resources/
You need separate database tables for "Tasks" and "Actions".
Task = has a name, displayed in a row
Action = specifies a piece of work done on a Task, has a start and end date
In this case, load Tasks as resources and Actions as events (use the task id as resource id) and you are done.