>I don't reject the use of generated keys, I reject the forced use of generated keys in all situations. Therefore I'll not have any problem in maintaining or enhancing that system. Situations where generated PKs are not possible (History Problem, PKs on ranges) the problem does not occur because they can't be solved with generated PKs (nor relational theory).
Just a note on that problem 3: I don't see the point of having a PK on start + end, since such a PK would not prevent this:
Start End
0 10
5 16
5 17
11 20
21 30
You have to code the logic to prevent this in the first place, and the code that will prevent this will therefore prevent the uniqueness error.
Sylvain Demers