> > Can you elaborate? Why would anyone create a text column to store
> customer name or product name which can very well be in varchar(50)
> type of cols.
>
> You sound like you think that varchar(50) is somehow cheaper than text.
> That's backwards (at least in PG, other DBMSes may be different).
> There's no advantage storage-wise, and there is a cost, namely the cost
> of applying the length check on every update.
>
> If you feel that you must have a check for application-specific
> reasons, then sure, use varchar(n). But the number had better be one
> that you can trace to crystal-clear application requirements.
> varchar(n) where n has been plucked from the air is a good sign of bad
> database design.
What a about using text x varchar(n) in primary key?