Я с Эндрю Роллингсом.
Теперь вы можете утверждать, космическая эффективность. Int это что, 8 байт максимум? Гид будет намного дольше.
Но у меня есть две основные причины предпочтения: удобочитаемость и время доступа. Числа для меня проще, чем GUID (так как я всегда могу легко найти следующую / предыдущую запись).
Что касается времени доступа, обратите внимание, что у некоторых БД могут возникнуть БОЛЬШИЕ проблемы с GUID. Я знаю, что это имеет место с MySQL ( MySQL InnoDB Выбор первичного ключа: GUID / UUID против производительности вставки целых чисел ). Это не может быть большой проблемой с SQL Server, но это то, что нужно остерегаться.
Я бы сказал, придерживайтесь INT или BIGINT. Единственный раз, когда я думаю, что вам понадобится GUID, это когда вы собираетесь выдавать их и не хотите, чтобы люди могли угадывать идентификаторы других записей по соображениям безопасности.