I apologize if this is semi OT...

I have an odd performance problem that I can't see any clear logic 
around.  I was wondering if jQuery might be able to help me with this.

Situation.
1. I have a table of employees.  Employees in the left column (one per 
row), and days in the remaining columns.  Some employees are team 
leaders, some are team members.  Teams can change at any time, and 
employees may change their role from leader to member, or vice versa. 
But an employee can only be on one team at a time.
2. I have a large list of "tasks" to be match up to the employee and 
day.  The only match to the employee is the employee ID.

Problem.
- Because teams can change I can potentially be viewing a period of time 
where one employee has been on two (or more) different teams, and so 
would rightfully have multiple rows of data.  Therefore, I can't simply 
use the employee ID as an element ID to find the row.  (potential 
duplicates).
- The only unique identifier I would have for each employee is a 
combination of the employee ID, team leader ID, and start date.
- The task only knows the employee ID.

So, I'm looking for a way to match the task to the correct employee row, 
while still satisfying the DTD requirements of not using duplicate ID 
values.  Once I know the row, I can determine the rest fairly easily. 
But thus far the only method I have come up with includes some nested 
loops which is resulting in significant delays.  And even then, I still 
have potential for duplicate IDs.

One thought that has occured to me (and I'll be trying out soon) is to 
create a hash object where the employee is the key which points to an 
array of employee objects.  The employee object would contain a  hased 
ID value (combine employee id, leader id, start date for instance) that 
will be unique. (or at least given a good statistical probability of 
being unique).  Then the further processing has the unique ID to find 
the corresponding row, AND the data to determine which row (if more than 
one) is pertinent.  But, I've never done this kind of indexing before 
and am concerned I may be introducing overhead and delays.  Any 
thoughts/comments here?

Thanks for letting me get this down in writing.  Sometimes the answer 
pops out at me when I do this.  But not this time.  Also thanks for any 
tips or suggestions.

Shawn

Reply via email to