• Your reaction is true and is not true at the same time. Leap year should have two dividers - 100 and 4 (known fact)

    We talking about balance between practice and pure theory and if there are some differences on case by case bases. I am not advocating for every system to do it this way. But for some cases it is very good and practically reasonable.

    Based on your answer, all systems must be overengineered to accommodate all conditions regardless what is reality. And based on your ideas Microsoft should never release Windows 3.1 because 2 -3 years later new conditions will require release Windows 95, 98, 2000.

    If the company has 50 users you should not design enterprize level system. Design should allow easily adjust changes. If, in my case, assignment of PK the way I am done will start failing, I can change the mechanism inside build-in function. And no other changes will be required. This is called flexible design. And If for 30 years company has 1-2 transactions per minute I could not imagine 10000% grows for another 20-30 years. If it will be the case, most likely company will redesign every existing system.