If we use JPA or some such with caching at the HttpSession-scoped level for keys (with some fancy dealing, I admit) we can have each person's view independent on a per-session basis. That is, the key will be translated into an id _in that person's context_, and the real id's are used to fetch. So a key change will only affect them when their keys refresh. Now we need a strategy for refresh, but hey... one problem at a time. :)
Not the best idea I've had, but more to point out that there are some solutions to this that can be fairly simple in practice. Christian Rahul Thakur wrote: > > [snip] >>> the project.id and projectGroup.id will basically disappear from >>> continuum, reserved strictly for the underlying store. The store can >>> do whatever it wants with them. >> >> Ok, so a project(Group)? will have: >> id : int >> key : String >> name : String >> ... >> >> Where key is used as a reference, id is used as a datastore/model >> identity, and name is used as a display. Sounds good. >> >> We could then have a table of "old names": >> id : int >> oldKey : String >> >> These could be used so that failed lookup on a key could then look in >> the old key's to find out what the new one is (like when you move an >> issue in JIRA). I'm not sure this is needed initially - only if we >> support picking up renames to the project itself. >> > [/snip] > > That was my point in my last email. I understand why we need that "old > key" table but this would be something that will just get bloated over > time. There could be a 'housekeeper' process that can clean up old > keys after a certain time has expired. I don't see a reason why we > need to keep the old stuff for long. > > Cheers, > Rahul > > -- *christian** gruber + process coach and architect* *Israfil Consulting Services Corporation* *email** [EMAIL PROTECTED] + bus 905.640.1119 + mob 416.998.6023*