So it was the original, 'why put sizes on at all?' question.

And I agree, I fight against arbitrary limitations every chance I get. As far as the database is concerned, they are mostly unimportant. Now, the application may see this in a different light. From the front-end, the user interface often can only allow so much data to be entered and displayed, as real-estate is the precious commodity for the UI. Then, the code must store these values in memory, which is the precious commodity for the middle tier, so things are often kept as tightly as possible. Then they store it in the database, where we don't care, but they don't want to take the chance that:

- The database can store any size value.
- So some data gets in there through some other source that is too large.
- They then read it back into the application and break a variable size there.
- Or it makes it to the user interface where it can't be displayed and it either breaks or looks bad.

So people often pick arbitrary sizes that they want enforced everywhere. I don't know that there is a way around it.

So if there need to be arbitrary sizes, then grouping them into a set of domains so they can be better controlled is a good idea, IMHO.

Having said all that, one must admit that, as I mentioned before, consistency is often better than accuracy. Even if I don't care about sizes for many reasons, there are some where I do. In the database, one is concerned with 'average' sizes. One needs to know what the average record size will be so one can size the table attributes correctly - PCTFREE, PCTUSED, etc. Setting arbitrary field sizes allows one to calculate a 'maximum' record size as well. If every string field were defined at 4K, for example, your sizing calculations might not be very accurate. The fluctuations could be too extreme, etc.

Do they really need 4000 characters for their first name? Probably not. Do they really need to be able to put in an hourly rate of 10 billion dollars? Probably not. Can allowing such incredibly extreme values cause headaches? Probably so. So some restraints are often sensible, but where to draw the line is always a battle.

Good luck,

- Chris

(cripes but I can ramble)