If you need to keep a message ID, you need them to be unique so it should be a primary key. I usually use an INT for this, since it is easiest to work with and integer comparisons and searches are the fastest. I wouldn't worry too much about running out of numbers. By the time you get through all the values of a BIGINT, posts made at the lower numbers probably won't be needed any more and you can just start over at 0. I'd also make your key unsigned so that you have twice as many available numbers without dealing with negatives.