[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