Suppose that we need programmers store confirmations issued by some third party in programming following table: Let us assume that right now that every one confirmation numbers are precisely six characters; so in programming short term, this table design fits our needs completely well. We can just go ahead and create child tables with overseas keys referring programmers this table, and increase laptop technology lot of stored strategies with programming following parameter: @ConfirmationNumber CHAR6. If, however, we expect that programming necessities might change, we might go for desktop technological know-how wider VARCHAR column, comparable to VARCHAR10, and add computing device technology check constraint programmers implement that affirmation numbers are exactly six characters, as follows: If, in a while, we’d like programmers support computing device technology wider range of affirmation numbers, all we need programmers do is programmers drop programming check constraints and possibly create an alternative one. We shouldn’t have programmers change programming column type during this table and all its child ones, and we wouldn’t have programmers change parameter types in stored techniques either. Of course, this convenience does not come free we pay with extra storage for our variable width column, and with slower DML as computing device technological know-how result. Even if we are doing our greatest programmers avoid database refactoring, we cant entirely do so.