Foros del Web » Programando para Internet » ASP Clásico »

¿Que es mejor? Concatenar datos en 1 variable?...

Estas en el tema de ¿Que es mejor? Concatenar datos en 1 variable?... en el foro de ASP Clásico en Foros del Web. Buenas tardes, que tal? quisiera que me ayuden con respecto a una duda que tengo para almacenar y consultar una información en una base de ...
  #1 (permalink)  
Antiguo 21/04/2011, 15:38
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 10 meses
Puntos: 4
¿Que es mejor? Concatenar datos en 1 variable?...

Buenas tardes, que tal? quisiera que me ayuden con respecto a una duda que tengo para almacenar y consultar una información en una base de datos... No se cuál sería la mejor opción en cuanto a realizarse como el deber ser, utilizar menos recursos en el servidor cuando hayan varias consultas, etc...

tengo una tabla llamada MetodosDePago con un indice cada opcion:

Son 3 opciones: 01-Efectivo, 02-Tarjeta de Crédito, 03-Cheque

y tengo otra tabla llamada Empresa donde necesito guardar en un campo de esta ultima los métodos de pagos que dicha empresa acepta... tomándolos de un formulario. Ambas tablas estarán relacionadas por el Id de método de pago.

no se si colocar solo un campo en la tabla y en el guardar los indices de las opciones que se eligan concatenando las opciones ejemplo: si eligen las tres opciones quedarían en la variable: 010203 (Sería el valor a guardar en el campo MetodoDePago de la tabla clientes.

O es mejor tener 3 campos, ejemplo: MetodoDePago1, MetodoDePago2, MetodoDePago3 y guardar cada elección uno en su correspondiente campo?

En caso de guardarlo en un solo campo, podría despues de tener el valor del ejemplo 010203 guardado en el campo hacer una consulta extrayendo los valores de dos en dos? ejemplo: 01 02 03 para publicarlo luego, en caso que sea posible, como lo puedo hacer? gracias de antemano
  #2 (permalink)  
Antiguo 22/04/2011, 13:21
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

todo depende de como luego quieras presentar esa información. pongamos que quieres presentarlos es 3 campos y la consulta te trae el valor (0103). tienes un problema, puesto que no sabes que par ha de ir en cada campo, pero es salvable con algo mas de código. así que mi respuesta, depende de como quieras presentar esos datos

Última edición por IsaBelM; 22/04/2011 a las 15:45 Razón: cambia el sentido con el uso de una partícula negativa
  #3 (permalink)  
Antiguo 22/04/2011, 13:30
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 10 meses
Puntos: 4
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

Hola IsabelM gracias por responder, decidí guardarlos en campos independientes.
  #4 (permalink)  
Antiguo 22/04/2011, 18:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 11 meses
Puntos: 146
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

Cita:
No se cuál sería la mejor opción en cuanto a realizarse como el deber ser,
Bueno, pediste opinión respecto a lo que debe ser. Tu solución tiene el problema que conforme vayan aumentando de formas de pago debes alterar la estructura, y definitivamente tu anterior idea de concatenar las opciones aceptadas, tiene el problema de que te limita en cuanto a consultas al codificar el contenido de un campo.

Hace muchos años que aplicaba esto cotidianamente pero a ver si lo recuerdo bien, dicen las formas normales que una relación está en primera forma normal si, y sólo si, todos los dominios de la misma contienen valores atómicos, es decir, no hay grupos repetitivos, y tener un campo por cada forma de pago es un grupo repetitivo.

Lo que deberías hacer es agregar una tabla de relación entre la llave primera y las formas de pago que acepta. De esta forma tienes independencia de la capa de datos de la logica de negocio respecto al límite de formas de pago acepadas.

Ahora, si no buscabas una respuesta del deber ser, sino una segunda opinión respecto a tus dos alternativas, yo opino lo que elegiste es mejor o menos peor que tener la información codificada

Saludos
  #5 (permalink)  
Antiguo 23/04/2011, 06:41
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 10 meses
Puntos: 4
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

Muchas gracias Myakire, si en fin siempre busco hacer las cosas como el deber ser... Pero en vista que no tenía una respuesta.

Creo que entendí bien tu recomendación, debo hacer una tabla con las formas de pago y sus respectivos indices, luego la de empresas con sus indices igualmente, y adicional una tabla para relacionar ambas (No se que nombre tiene ese tipo de tablas)

Tabla: Formas de pago

Id
Forma_de_pago

Tabla: Empresas

Id
Nombre
Direccion
Telefono

Tabla: Relacion que me recomiendas

Id_empresa
Id_forma_de_pago

Es así? muchas gracias por estar pendiente... No se me había ocurrido hacerlo así, habiendo trabajado en algo similar con un programa de facturación e inventario que hice en la universidad
  #6 (permalink)  
Antiguo 23/04/2011, 20:13
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 11 meses
Puntos: 146
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

Sip,asi es como dicen los canones; puedes leer sobre modelado y normalizacion su quieres profundizar mas o preguntar en el foro de BDs. Aqui normalmente hay usuarios que saben de BDs pero ahi hay administradores, que cosas como estas son su pan de cada dia.

Igual si tienes otra duda, no dudes en plantearla

Saludos

PD. A las tablas que resuelven las relaciones muchos a muchos se les llaman tablas resolucion o tabla enlace
  #7 (permalink)  
Antiguo 23/04/2011, 20:39
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 10 meses
Puntos: 4
Respuesta: ¿Que es mejor? Concatenar datos en 1 variable?...

¡Muchas gracias!

Etiquetas: concatenar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.