views:

222

answers:

3

Algorithmically speaking, how could I generate a unique, human readable, reasonably lengthed - order number for SQL Server column. The only requirement is that it references the Customer Number and can be easily repeated over the phone.

Something like:

  • Customer Number - XXXXXXXX - XXXXXXXX

RT65-XXXXXXXX-XXXXXXXX

How would I generate the XXXXXXXX? (Use random alpha-numeric data and then checking to see if it was in fact a duplicate?)

and

What are the best methods/considerations when generating these types of numbers?

How have you done this in your application?

A: 

Use an identity column and pad with zeros.

Alter the start and increment values to taste.

Optionally, add a CRC check digit.

wefwfwefwe
For a check digit, I've always been a fan of making the number a multiple of 11. The most common data entry error is digit reversal, followed by wrong digit. Both of those errors always change the value of a number mod 11.
phkahler
A: 

Check out these posts, nearly the exact same question. Real good data in both (I've used them before):

http://stackoverflow.com/questions/1823864/a-good-algorithm-for-generating-an-order-number

http://stackoverflow.com/questions/178572/what-is-the-best-format-for-a-customer-number-order-number

dpb
A: 

This is silly but fairly straight forward, How about yyyymmddhhmmss

and use it with

RT65-XXXXXXXX-XXXXXXXX

Vivek Bernard