0

I have the following entity-relationship diagram (simplified, just the part for this question and there are extra attrributes in reality)

ERD diagram

A [Maintenance Ticket] has N assigned WorkOrders, each WorkOrder has assigned N Resources (WorkOrders) and for each such assignations there must be logged N Activities (how many hours the worker dedicated to the given workOrder each day)

I had a design working until the requirement for Activities arrived; a simple master-detail (ticket-workOrders), with each workOrder showing the list of workers (the 4th column).

Main Window Screenshot 1

For creating new orders/editing existing ones, a simple popup appeared. It has a pick list, to select from all of the valid workers which ones are assigned to the workOrder.

Edition/Creation popup Screenshot 2

Now the issue is how to add the activities into the mix. I have considered 3 alternatives.

1) Keep everything as it is now, and add a button "Activity" next to each worker in the detail. The button shows a popup with a table of previously entered activities and a form to add new ones.

2) Add a "Close" or "Report activity" button to the workOrder. There, a popup similar to the one in 1) would appear (but of course an extra field to select to which worker belongs the activity would be needed).

3) Modify the "Edit" popup in order to both select available workers and add activities to the selected workers.

I would like to go with 3) because I like to keep the number of screens as low as possible, but I can not think of a way of keeping it simple. I only can think of keeping the pickList and add a table for activities (but then I have to check integrity between picklist and activities).

In the case that 3) is deemed a bad option, I would then go to 2), but I am open to consider other alternatives.

So, what I am asking is:

a) Can anyone think of a good way of implementing 3)?

b) Can anyone point any advantage/disavantage of my options that I missed?

c) Can anyone provide another alternative?

UPDATE

I'll added how I did it as an alternative, in case someone wants to give advice / offer a proposal.

In the end I kept the dessign above defined; for adding the activities I added another popup to the main page:

Activity Popup Screenshot Screenshot 3

The 3 buttons shown in the background are associated to each workorder; the first is for the popup for edition of the workOrder itself, including assigning workers (screenshot 2), the second is for the popup of the activities (screenshot 3).

My main issue is that the info about the workers is "duplicated" between the popups, changes in the first popup affect the values in the second one.

Other issue is that there are a little too much popups for my taste, but given that usually the user will work in batches (they will add all of the activities in one or two runs) it is less trouble.

The advantage of my approach is that it is as they usually work; first they create the workOrder and assign the workers, a few days later they report the activities.

A possible alternative would be this: enter image description here

managing workers and their activities directly from the main page. But I fear that I will end with a page overcrowded with buttons, and I do not know what would be worse.

So the question would be which is the preferred approach (basically, what will the user find less complicated) or if there is any alternative.

Maybe I am giving it too much importance; it is my first programming work alone and after a long time so I want it to be polished.

4
  • 2nd paragraph, did you mean "each Ticket has assigned N Resources" Commented Sep 24, 2012 at 19:23
  • This sounds like multiple questions. (Interesting ones though!) Perhaps consider splitting this up. I like that you've included a lot of detail about your project, but I we're getting drowned in the details. Is there any way to boil this down into a set of abstract questions? Also, it would be helpful if you used conversational English -- keep things as simple as possible! Commented Sep 24, 2012 at 19:28
  • @LorenRogers no, each ticket has N workOrders, each workOrders N resources/workers, each worker N activities. I agree that maybe the question is too long, I'll think about reworking it.
    – SJuan76
    Commented Sep 25, 2012 at 12:14
  • I must admit that I'm pretty confused about the question. It sounds totally interesting, but I just can't wrap my head around it. Let me know if you manage to re-word it / distill it down and I'll try to understand it again. Sounds interesting though! Commented Sep 25, 2012 at 13:40

1 Answer 1

4

Could you assign the Resources through the Activities? Then when you want to see which Resources are assigned to an order you could pull them through the Activities association.

So Ticket has many WorkOrders
A WorkOrder has many Activities
An Activity has many Resources

Then Assignment is a logical association such that:

A WorkOrder has many Resources through Activities
3
  • Do you mean getting away with the pick list in screenshot 2 and just allowing any worker to be used for new activities? The trouble is that when a workOrder is created, the resource (worker) is assigned, then a printed notice passed to him/them, and after the workOrder has been fulfilled then the activities are recorded. So, I need to add resources to WorkOrders without activities.
    – SJuan76
    Commented Sep 25, 2012 at 12:25
  • A twist of your idea would be setting the Workers/Resource for the workOrder as now (screenshot2) but ignore that list when reporting activities (allowing to chose any Worker available, not just the assigned to the WorkOrder). The advantage would be more flexibility for the user, and that now the data between both popups is not related (in a DB meaning). The disavantage will be that, for every Activity added, the user will be offered a longer pick list. I will ask the project functionals, thanks.
    – SJuan76
    Commented Sep 25, 2012 at 12:42
  • I like your idea of separate lists and see why you would need two places to store them if you are assigning workers way before activities are created. Rather than showing every worker for the Activities, I'd just limit the query to the workers assigned to the workOrder with a where clause.
    – Robert
    Commented Sep 25, 2012 at 16:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.