On 28/06/13 20:53, Matevž Bradač wrote:
Page URL: <https://issues.apache.org/bloodhound/wiki/Proposals/BEP-0010>
I have to admit that I had not considered the alternative of dropping the 
existing primary key altogether.

Both schemes could probably also support a 
/env/ticket/<product-prefix><scoped-id> type url if we wished so there is 
nothing particular extra to separate the ideas on that basis.

If we are also taking changes of product into account, I think I would prefer 
maintaining the existing primary key. I am not sure if this aspect is covered by any 
other proposal but I believe that we are expecting the ability to move tickets 
between products and on moving, any old ticket links to continue to work. This would 
effectively mean something like redirecting to the current product and will take the 
current product and ticket permissions into account. This requires that we maintain a 
list of previous references and it will also be important to make sure that there is 
no accidental reuse of a previously assigned <scoped-id> within a product. On 
the assumption that we use an extra table to keep track of the synonyms, then keeping 
the current primary key makes sense to me.

Does anyone spot any other issues we need to worry about?
Thanks for the feedback. I haven't started the discussion here
yet, since there are some blanks to fill in (mainly implications),
but I think that can be done in parallel.

Oh, sorry.. I didn't realise. I hope it is better to have some discussion to get early feedback.

I assumed that moving the tickets from one product to another
would imply creating a new ticket in the target product, while
closing the one in the source product. This would of course mean
that the new ticket gets a new ID, while the old one gets a
reference (possibly a new duplicate/refersto relation?) so that
the old links would still effectively work.

Well, that is one way of doing it, yes. One inconvenience would be the implication that you are forced to look to a different ticket to see the past. Taking multiple movements into account this becomes a chase backwards through time and when you also have to worry about whether a user viewing the current ticket has the necessary permissions to see the older tickets, things are not really as clear cut as I would like.

Another interesting little quirk of this (though not a huge additional problem) is that if a ticket ever returns to a product, it will be in the product twice. With my suggestion, you would probably expect to be going back to the previous id it had in that product.

And one further quirk that springs to mind is that this may become the first instance of a ticket resolution that we may be forced to disallow reopening.

I don't know how
inconvenient this would be for the users, so perhaps we should
add your suggestion as a third alternative?

Well, if my ideas are worth taking into account the I guess we should. Obviously, even if my suggestion does turn out to be the superior, we may well live with another solution if it is easier to implement as we can always see it as a step to the eventual solution. We can hope that the desire to move tickets would be relatively rare.

Cheers,
Gary

Reply via email to