Táctica de normalización de SQL Server: varchar vs int Identity
Me pregunto cuál es la solución óptima aquí.
Digamos que tengo una base de datos normalizada. La clave principal de todo el sistema es un varchar. Lo que me pregunto es si debo relacionar esta varchar con un int para la normalización o dejarla. Es más sencillo dejarlo como varchar, pero podría ser más óptimo
Por ejemplo puedo tener
People
======================
name varchar(10)
DoB DateTime
Height int
Phone_Number
======================
name varchar(10)
number varchar(15)
O podria tener
People
======================
id int Identity
name varchar(10)
DoB DateTime
Height int
Phone_Number
======================
id int
number varchar(15)
Agregue varias otras relaciones de uno a muchos, por supuesto.
¿Qué piensan todos ustedes? ¿Cuál es mejor y por qué?