Item9642: InterdependentVariableDatabase
Priority: Enhancement
Current State: No Action Required
Released In: 1.0.0
Target Release: n/a
Applies To: Extension
Component:
Branches:
Hi
I have an interesting problem, and a idea on a possible solution.
I have a busy working on a project tracking/management system. The structure are as follow:
- A master project topic
- Tasks for this specific project
- Milestones for the project - a milestone will be the 'parent' for a couple of tasks
The first step is to define the project and the project attributes. For example the project would have the following attributes:
- Project Name
- Project Manager
- Start Date
After the project attributes are defined tasks can be added to the project. The tasks reside in a lib. The lib keeps general information on a task, for example the description and the duration. The task can be added to a project and will inherit the attributes of the lib item. A task will also have additional attributes;
- Task Name
- Task Description
- Task Duration
- Task Start Date: The task start date will depend on the predecessor end date.
- Task Predecessor: The task predecessor needs to be defined to determine the start date.
For example:
Task 1 Startdate = Project Start Date
Task 1 Enddate = Task 1 Startdate + Duration
Task 2 Startdate = Task 1 Enddate
etc
One solution would be to define the project as a topic and define the project start date in a form attached to the project. The tasks can also be topics with the project topic as their parent. The start date of task 1 then needs to be the project start date. And task 2 will get its start date from task 1 as earlier explained. The problem is that when the project start date is changed I have to manually open task 1 to update the start date and then manually open task 2 to update etc. This is not a viable solution.
The second solution would be to keep all the variables and data in one topic. This would work if the project stays relatively small (<10 tasks). Then total fields will be less than a 100. But if the project expands to say 200 tasks then the form will have 1000+ fields, which will be to cumbersome and ineffective. The second problem is that the predecessor needs to be defined from the name of one of the earlier tasks, meaning that the formfield values must be able to update dynamically, which again creates another set of problems.
In my mind I would like the possibility to define a wiki database inside a wiki topic. For example one page, with a large table with a arbitrary number of columns and rows. Where the columns will be the fields and the rows the variables attached to that field. Something like a excel spreadsheet or a
MySQL database where the interdependency are kept in the database and formfields will be identifiable by column and row identification.
At the moment my best solution in my humble opinion would be to use a
MySQL database and only use foswiki as the front end to the database, but I would like to be able to keep everything inside foswiki.
Does a solution to this problem exists or are my solution the best option?
Would it be wise to develop a plugin/extension that can accommodate the needed functionality?
Any advise or ideas would be much appreciated!
--
HenroRitchie - 08 Sep 2010
Thank you
HenroRitchie for your interesting question!
This task reads like a feature request + support request.
There is nothing really actionable on this task (i.e. no code that we can commit for it) and a proper feature proposal needs a really thorough specification to guide the coders.
SO I have continued your problem at
Support.Question641.
--
PaulHarvey - 08 Sep 2010
Quite right, Paul, moved my comment over there.
--
DavidPatterson - 08 Sep 2010