MySQL - Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL
Resultados 1 al 8 de 8
Like Tree1Likes
  • 1 Post By jacosito

Tema: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

  1. #1
    Experimentado
    Fecha de ingreso
    12 Oct, 14
    Mensajes
    604

    Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    Hola a todos!

    Que tipo de dato usarian para guardar el numero de celular y el rut en una base de datos en SQL SERVER 2008 ?

    El celular viene en el formato 9xxxxxxxx

    El rut puede ser de personas o empresas y viene en formato xxxxxxxx-x

    La entidad guardaria cientos de millones de registros,por lo tanto es importante optimizar al maximo el espacio y rendimiento.

    Gracias por la ayuda!!

  2. #2
    🐔 La papa
    Avatar de Kensho
    Fecha de ingreso
    16 Aug, 06
    Ubicación
    En este cuerpo que me contiene.
    Mensajes
    7,079

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    yo usaria alfanuméricos excepto en el q necesites hacer busqueda por rangos
    A los que contemplan la luna las nubes a veces ofrecen una pausa. ¯\_(ツ)_/¯
    Cita Iniciado por kermit Ver mensaje
    esta prohibido alabar a kensho, ban

  3. #3
    Experimentado
    Fecha de ingreso
    12 Oct, 14
    Mensajes
    604

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    Cita Iniciado por Kensho Ver mensaje
    yo usaria alfanuméricos excepto en el q necesites hacer busqueda por rangos
    Y dentro de los tipos de datos alfanumericos cual usarias?

  4. #4
    Experimentado Avatar de _niku
    Fecha de ingreso
    03 Sep, 10
    Mensajes
    538

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    Todo depende como lo guardes

    Si es como lo expones:

    10xxxxxx-x varchar
    98xxxxxxx int

    Ahora analiza si en tu modelo conviene la separación del dígito verificador y el código en una tabla aparte.


  5. #5
    Avanzado
    Fecha de ingreso
    03 Sep, 07
    Mensajes
    1,245

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    1. El peor error es elegir para el rut varchar. Porqué?
    2. Celular, tipo de datos 64bits, long
    3. ¿Porqué en el digito verificador sería un error utilizar varchar?

    Resp. 1: Los caracteres en todos los sistemas operativos hoy en día son unicode (no importa que se setea utf-8.
    Los caracteres unicode ocupan 16bits por lo que el rut-varchar ocuparía 20 caracteres.

    Rut - parte numérica
    El tipo de datos int ocupa 32bits y tiene como valor máximo 2.000.000.000 y algo mas pero suficiente para almacenar el rut.
    La diferencia sería que en uno ocupa 20bytes y el otro 4bytes.
    Para comparar el rut-varchar tomaría muchisimos clocks. A modo de ejemplo supongamos 20clocks.
    Para comparar el rut-int tomaría poquisimos clocks. A modo ejemplo, 1 clock. La comparación en la cpu es realizada en una sola acción.

    2. No es necesario mas.

    3. La definición del tipo de datos varchar ocupa mas de 1 byte.
    La definición de char(1) ocupa exactamente 1 byte.

    Resumiendo:
    rut_num int
    dv char(1)

    Saludos
    Mata.skt likes this.

  6. #6
    Usuario La papa

    Avatar de nero519
    Fecha de ingreso
    16 Nov, 09
    Ubicación
    Santiago, Chile
    Mensajes
    325

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    +1 a guardar sólo el Rut en un int, el DV se puede generar desde el Rut o guardar en una columna adicional si es que es necesario.

  7. #7
    Avanzado Avatar de darkone2k4
    Fecha de ingreso
    11 Jul, 05
    Ubicación
    Santiago
    Mensajes
    2,009

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    Cita Iniciado por jacosito Ver mensaje
    1. El peor error es elegir para el rut varchar. Porqué?
    2. Celular, tipo de datos 64bits, long
    3. ¿Porqué en el digito verificador sería un error utilizar varchar?

    Resp. 1: Los caracteres en todos los sistemas operativos hoy en día son unicode (no importa que se setea utf-8.
    Los caracteres unicode ocupan 16bits por lo que el rut-varchar ocuparía 20 caracteres.

    Rut - parte numérica
    El tipo de datos int ocupa 32bits y tiene como valor máximo 2.000.000.000 y algo mas pero suficiente para almacenar el rut.
    La diferencia sería que en uno ocupa 20bytes y el otro 4bytes.
    Para comparar el rut-varchar tomaría muchisimos clocks. A modo de ejemplo supongamos 20clocks.
    Para comparar el rut-int tomaría poquisimos clocks. A modo ejemplo, 1 clock. La comparación en la cpu es realizada en una sola acción.

    2. No es necesario mas.

    3. La definición del tipo de datos varchar ocupa mas de 1 byte.
    La definición de char(1) ocupa exactamente 1 byte.

    Resumiendo:
    rut_num int
    dv char(1)

    Saludos
    Si sólo van a almacenar RUT y no pasaportes para extranjeros, por ejemplo, lo que indica jacosito es lo mejor, se optimiza espacio así como las búsquedas.
    TV: LED LG 42LA6200 3D Smart TV FHD
    Celular: Asus Zenfone 3 Deluxe 64GB
    Notebook: ASUS X750j Core i7-4700HQ, 8GB RAM, SSD 250GB SAMSUNG EVO 840, SATA 1TB, INTEL 4600HD

    Consola: XBOX One, XBOX 360 SLIM 250GB
    Audio en Casa: LG HT 5.1
    Audífonos: Bose OE2i
    http://www.chw.net/foro/dudas-y-feed...arkone2k4.html

  8. #8
    Avanzado
    Fecha de ingreso
    03 Sep, 07
    Mensajes
    1,245

    Re: Tipo de dato para campo Numero de celular y rut_dv en base de datos SQL

    Cita Iniciado por darkone2k4 Ver mensaje
    Si sólo van a almacenar RUT y no pasaportes para extranjeros, por ejemplo, lo que indica jacosito es lo mejor, se optimiza espacio así como las búsquedas.
    Cada escenario hay que analizarlo desde varios puntos de vista y elegir el mas conveniente.
    Uno de los puntos de vista debe ser siempre el rendimiento, si se gana/mantiene/pierde según un indicador. Este indicador debe ser aterrizado y no una quimera.
    Por ejemplo, tiempo de respuesta con el 1er registro y el último registro en un listado de 1000 registros.
    Siempre tener a mano algún indicador de rendimiento.

    Saludos

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
*