Для SQL Server вы абсолютно правы. Очень хорошая практика иметь инкрементный столбец идентификатора идентификатора для кластерного индекса.
Однако, это может зависеть от вашего бизнес-процесса. В случае массивных нагрузок в таблицу вы можете иметь кластерный индекс. В этом случае вам, возможно, придется использовать GUID или специальные сценарии, но это довольно редкий случай.
2-й вопрос: вы должны использовать целые числа для вашего идентификатора, а размер зависит от количества записей в таблице. Например, если у вас есть таблица «Пол», вы можете использовать «TINYINT» (1 байт). Он содержит значения от 0 до 255.
Если у вас есть таблица «Период работы» (для ежедневной записи), вы в порядке с «SMALLINT» (2 байта). Он содержит значения от -32,768 до 32,767.
В большинстве других случаев используется типа «INT»
В случае, если ваш босс говорит, что это не будет достаточно, то вы можете использовать «BIGINT», но в этом случае вы, вероятно, будете бороться раздором.
Вот как объявить эти значения:
ID TINYINT IDENTITY(0,1)
ID SMALLINT IDENTITY(-32768,1)
ID INT IDENTITY(-2147483648,1)
ID BIGINT IDENTITY(-9223372036854775808,1)
могли бы вы пометить соответствующую RDBMS – TheGameiswar
1-ый вопрос, хорошо документированы в redpective руководствах. Ответ на второй - это зависит от ваших бизнес-требований. – Shadow
Если вы действительно используете MySQL, SQL Server, PostgeSQL и SQLite, это должно быть объяснено в вашем вопросе. –