What are some good rules of thumb for specifying a column length? People will arbitrarily use "VARCHAR(50)" for name fields etc... but most of this is guess work. Does anyone have any resources they use? What are the rules of thumb you follow to designate a character length? For example, for a URL - these can be lengthy especially given a maximum length querystring - but using VARCHAR(MAX) seems over the top even though making it VARCHAR will only take the space required of the actual string data.

Please advise/share -