I probably do not give size and performance characteristics as much precedence as I should but using a varchar makes the model more flexible if you decide to change the identifier format. If you plan on simply using a serial that starts at 1-million then OK but if you are picking these numbers on some basis then varchar is something to consider. Given the limited information supplied my mind just tends to jump to the fact that you are limiting input to numbers only where that may be an overly strict limitation. The other consideration is whether you fully control the assignment of those values.If you do not then the assumption is even more hazardous since the external format could already be character based. That said it likely would be more benefical to use the smaller, restricted dataset if those limitations are acceptable. From: Arash pajoohande [mailto:apajoohande@xxxxxxxxx] @Dave On Mon, Apr 11, 2011 at 9:18 PM, David Johnston <polobo@xxxxxxxxx> wrote: >>>> the data type does not need any arithmetic operations (as of integers). You arguably do not have a number but simply a string that looks like a number. Other examples are zip-codes and phone-numbers if you ignore symbols. Thus you should probably use an appropriately sized char/varchar. Do you think using char/varchar which in this case will take about 20 bytes for each entry is more proper than using bigint with only 4 bytes?
The data is some kind of identifiers. I don't think they will need any kind of arithmetic operators at all :) |