Campos Numéricos o Alfanuméricos en Bases de Datos

Respuesta de
a
Usuario
Me gustaría saber que es más recomendable para códigos identificadores de departamentos, municipios, provincias, etc. ¿un código numérico o un alfanumeri? Tómese en consideración que tales códigos luego pasaran a formar parte de un código compuesto, como ser un geocodigo o un código de centro educativo. Ademas no se hacen operaciones matemáticas con dichos códigos. Por ejemplo: es mejor 8 numérico que '08' ¿alfanumérico...?
Gracias
Experto
Hola nuevamente:

Respecto a lo que me comentas, es mucho más recomendable que utilices códigos alfanuméricos, ya que el control de las tablas que tienes es bastante bueno, ademas por lo que he entendido estos códigos formaran otros compuestos. Un campo numérico no te permite eso. Un campo numérico se recomienda cuando el identificador es ÚNICO y debe de ser de rápida identificación. También se utiliza cuando la cantidad de registros es muchísima y las búsquedas e indexaciones tienen que ser veloces. Ahora bien, no se que tipo de bases de datos utilizaras, independientemente de eso, es más recomendable el alfanumérico. Y sobre todo, lo que debes tomar en cuenta sobre todas las cosas, es que te pongas en el lugar del usuario y pienses que seria lo más fácil para el.
Saludos
(P.D. No te preocupes por convertir esto en un foro, pues así podremos opinar varias personas) ^_^
Experto
Hola acerrato.

En base a lo que me has preguntado, la respuesta es la siguiente: depende.
Si estos códigos de identificación (ID´s) van a formar otros códigos compuestos, entonces lo recomendable es que los hagas alfanuméricos, pues así evitaras duplicidad en códigos pudiendo agregar letras o guiones como parte del código, sin embargo debes tener mucho cuidado y mucho control al no repetir el código alfanumérico, puesto a que puede crear ambigüedades. Es decir, si utilizas códigos alfanuméricos, debes tener cuidado con tener códigos como estos ('08','008', 0008') porque, aunque sea el mismo numero en todos los casos, el código es diferente.
Sin embargo, si deseas tener un código mucho más veloz y ágil, te recomiendo el numérico, también es más practico.
En conlusion: yo me iría por el numérico.
Usuario
Ha sido muy satisfactorio compartir conocimientos contigo y verdaderamente muy valiosa tu ayuda. Estamos usando Sybase 12.5 con DBMS con PowerBuilder
Usuario
Antes que nada agradecerte tu pronta respuesta. Para darte un mayor detalle de lo pretendido te diré que tales códigos serán usados para identificar los departamentos, municipios, aldeas, cacerios de mi país. Básicamente existen solamente 18 departamento y dentro de ellos n-municipios y dentro de cada municipios n-aldeas, etc. Estas tablas auxiliares no serán tocadas nunca más, a menos que cambie la composición geográfica de mi país. Sin embargo, observo que la mayoría de las instituciones utilizan códigos alfanuméricos, ya que el cero a la izquierda le da un significado al dato, tal como tu dices: '08' y '008' no son lo mismo y su integridad la conservan los procesos que crean dichos códigos. Ahora bien, observo que un código numérico como 8 por ejemplo, que represente el departamento 8 y el cual utilizare para crear un geocodigo que obligatoriamente debe ser 08..., requiere una manupulacion, pues hay que convertir a carácter el 8 y agregarle un cero a la izquierda a dicho numero y después concatenarlo con el código del municipio, etc. Me gustaría saber otras ventajas en el uso de códigos numéricos, ya que no haré operaciones matemáticas. También he observado que los ordenamientos de este campo código alfanumérico y numérico son exitosos en uno u otro tipo, ademas de que la forma de ordenar de sybase (Btrees creo) es más optima pero en gran volumen de datos; pero no en el caso de un volumen de apenas 18 registros (departamentos) en el cual el método de burbuja (orden n cuadrado) es igual de optimo que Btrees pues no creo meritorio mejorar el rendimiento con el uso de códigos numéricos.
¿Qué piensas?
Perdón por convertir esto en un Foro en lugar de una pregunta... y Gracias nuevamente