JFYI: It might theoretically be a valid situation to have two entries with the same name (software gets deleted, then two years later an unrelated software with the same name gets added; but only one entry would have the status "active" and the others not). A lot more common case would be that a port gets renamed, even if just by changing the capitalisation. Or the version or -devel suffix gets attached to the end, then removed again ...
But that might get arbitarily complicated. You may keep the potential need for convoluted history in the back of your mind when designing the solution and try to work with internal unique port IDs as numbers instead of strings etc., but we would rather have a simple solution working than a complex solution 70% done and never finished & deployed. I would definitely not overcomplicate the solution. We do need to mark ports as inactive when they become obsolete or removed, but that's just about where I would stop with "complex situations". Mojca
