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

Matriz

Estas en el tema de Matriz en el foro de ASP Clásico en Foros del Web. hola a todos: Como siempre haciendo preguntas... y sobre todo sabiendo que alguien podrá ayudarme. Tengo una duda, el punto es que estoy recogiendo de ...
  #1 (permalink)  
Antiguo 01/10/2007, 02:09
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Matriz

hola a todos:

Como siempre haciendo preguntas... y sobre todo sabiendo que alguien podrá ayudarme.
Tengo una duda, el punto es que estoy recogiendo de una base de datos información de contactos para posteriormente enviarle s un correo, enm asa, la cuestion es que dependiendo el producto que quieran se les envía un correo u otro.
Entonces yo en mi base de datos en el campo promociones tengo esta cadena:
MADRID - Residencial Ciempozuelos
Entonces el cliente quiere info de Ciempozuelos y le debo enviar por correo un HTML que está en la carpeta ../mailing/ciem/ciem.htm

Lo que estoy haciendo es:

Recoger el campo promociones hacerle un split para eliminar MADRID :
Código:
TodPromocion = Split(rs("promocioninteres"), " - ")
NombPromocion = todPromocion(1)
luego recojo NombPromocion y lo pongo en un if NombPromocion = "Residencial Ciempozuelos" Then NombPromocion = "ciem"

Todo funciona bien pero sé que no es la mejor manera, sobre todo si tengo que hacer un IF por cada promoción, creo que puedo volverme loco.

Comenzando desde el diseño de la base de datos, además estamos hablando que esa base de datos tiene 50 y tantos mil registros.

Que me aconsejais? como me ahorro tanto IF, esa es la pregunta despues de tanto bla bla bla

Otra pregunta sería acerca de la BD
Lo optimo sería quizá rediseñar la BD pero por el momento no hay tiempo, quieren algo para YA!

Pero a posteriori se hará, no sé cómo modificar una base de datos ya con datos sin perder nada, alguna buena fuenta para inestigarlo?
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #2 (permalink)  
Antiguo 01/10/2007, 07:21
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Matriz

Bueno, definitivamente el tema de la BD es básico un rediseño, incluso podría aventurarme a decir que es la solución más rápida ya que siempre tendras un nuevo if por programar.

En todo caso, si el tema del rediseño de la BD no va por ahora podrías crearte una tabla adicional (claro esta con caracter de temporal, esta tabla debería desaparecer cuando rediseñen tu BD) donde tengas la columna a buscar y lo que va en el "then", es decir una columna que podrias llamarla NombPromocion y una columna llamada Promocion, en la primera columna guardarías por ejemplo Residencial Ciempozuelos y en la otra columna guardarías ciem y lo único que tendrías que hacer es un SELECT y asi no haces un solo IF.

Definitivamente no es una salida tan óptima desde el punto de vista base de datos, de todas maneras procura la opcion de rediseño
  #3 (permalink)  
Antiguo 01/10/2007, 07:33
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Matriz

Gracias esa es buena opcion lo haré así mejor. Mientras analizo todo el rediseño de a base.

Un saludo
__________________
Temiqui Iztoc Cualtlia Elhuayotl

Última edición por gagarin; 02/10/2007 a las 02:50 Razón: Falta ortográfica
  #4 (permalink)  
Antiguo 01/10/2007, 14:06
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Matriz

No se si realmente entendí el problema, obviamente guardar datos de esa manera es totalmente incorrecto, pero bueno...la problemática es que necesitas envíar una campaña a aquellos subscriptores en donde ese campo tenga el string "Ciempozuelos" cierto? No basta con una búsqueda WHERE campo LIKE 'Ciempozuelos%' ?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 02/10/2007, 02:57
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Matriz

La verdad es que soy bastante novato con ASP y el tema de BD por otro lado toda la estructura de datos que tengo en el site está desarrollada sin ninguna lógica previa a cuando sustituí al desarrollador anterior, por tanto si bien es cierto es que si la base de datos hubiera estado bien planificada desde el principio no tendría yo que estar haciendo estas chapuzas.

Lo que me dices es verdad quizá debio haber existido en la tabla un campo Idprovincia, otro Idlocalidad otro IdPromocion, despues las tablas de promociones, de localidades y otra de provincia (se me ocurre, quizá o sea así, lluvia de ideas) y dentro de la tabla promociones poner la ruta del archivo HTML a enviar y eso podría haber resultado mejor.

Ahora, repito mi conocimiento acerca del diseño de BD es bastante básico, asimismo el de SQL, pero estoy en ello, llevo solo una semana con el ASP y ya he logrado hacer bastante.

Si pudieras recomendarme un buen tuto de diseño de estructura de datos en las bases te lo agradecería, si algo quiero es hacerlo como debe hacerse.

Muchas gracias por sus respuestas me han ayudado mucho
__________________
Temiqui Iztoc Cualtlia Elhuayotl

Última edición por gagarin; 02/10/2007 a las 03:07
  #6 (permalink)  
Antiguo 02/10/2007, 07:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Matriz

Un buen tutorial de normalización: http://bulma.net/body.phtml?nIdNoticia=483

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 02/10/2007, 07:16
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Matriz

Hola U_G es cierto que lo que recomendé no es la mejor manera de grabar la información y verdaderamente no habrá una respuesta certera al problema mientras no se haga un rediseño de la base de datos, pero entre una tabla con un indice y una búsqueda secuencial por un descriptivo a una tabla de mas de 50,000 registros me quedo con la tabla que no debe existir pero que tiene índice, en ese momento ya es más un tema de decisión de optar por una o por otra, al final ninguna de las dos salidas es la más óptima.

Quizá si gagarin nos explica al detalle que es lo que desea exactamente podamos ayudarlo mejor.

Salu2
  #8 (permalink)  
Antiguo 02/10/2007, 07:22
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Re: Matriz

Cita:
Iniciado por CésarBalaguer Ver Mensaje
Hola U_G es cierto que lo que recomendé no es la mejor manera de grabar la información y verdaderamente no habrá una respuesta certera al problema mientras no se haga un rediseño de la base de datos, pero entre una tabla con un indice y una búsqueda secuencial por un descriptivo a una tabla de mas de 50,000 registros me quedo con la tabla que no debe existir pero que tiene índice, en ese momento ya es más un tema de decisión de optar por una o por otra, al final ninguna de las dos salidas es la más óptima.

Quizá si gagarin nos explica al detalle que es lo que desea exactamente podamos ayudarlo mejor.

Salu2
Hola Cesar, no se, sería cuestión de probar, como tu dices realmente no hay solución óptima, solo trataba de ampliar un poco más la perspectiva.

Saludos!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 02/10/2007, 10:08
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Matriz

En pricnipio es esto lo que necesitaba.

Existe un formulario de contacto de la web de la empresa que recoge los datos y envia a los usuarios información de X producto.

Por una cuestion interna, decisión provisional, se opto por solo enviar una carta diciendo que en breves recibirían info pero podrían ampliar información insitu (el resto lo hacía el vendedor).

Al hacerse el envío los datos se introducían a una base de datos y un campo correoenviado se seteaba en si o no (true or false) si el correo era enviado, que pasa? que de pronto hay una lista de 1000 usuarios solicitando info de 20 productos diferentes a los que se debe enviar la info completa y que solo se les ha enviado la carta provisional, el valor de correoenviado se ponía a false. Lo que hice es realizar una página de uso interno con la consulta a la base de datos en la que arrojara todos los correos que no han sido enviados con una búsqueda rápida por medio de un dropdown list, perfecto eso funciona, cargo los datos y veo justo lo que quiero.

Posteriormente tienen una checkbox para seleccionar los correos a enviar, esto por que de pronto te ponen un [email protected] obviamente el formato es correcto no así el correo.

Una vez seleccionado loq ue quieres pulsas un boton enviar y vas a un ASP que lo que hace es recoger los ID de los checkbox y hacer una consulta a la base de datos usando esos ID realizo un do while rs y se envían los correos uno a uno y al ser enviados hago un UPDATE de la columna correo enviado y los pongo a true, de esta forma cuando se vuelva a hacer una consulta de no enviado ya no apareceran esos correos en esa lista y en la base de datos

para hacer los envíos llamo a archivos .html los cuales son enviados por correo, para completar sus rutas lo que hago es recoger valores de el dropdown y haciendo split (zapat - Madrid - Zapato) donde uso zapat para completar la ruta del archivo a enviar (madrid/zapat/zapat.htm) eso fue lo que se me ocurrió hacer para evitar hacer lo de la base de datos.

Eso es lo que quería hacer y lo estoy haciendo, lo hice revisando la sintaxis y funciones prueba error prueba error buscando en tutoriales y las preguntas y respuestas del foro y las que todos los que contestaron mis dudas me aconsejaron hacer.

Mi idea es rediseñar la base de datos, sé poco pero con eso me ha bastado para darme cuenta de lo mal pensada que está y que se pasaron por alto algunas cuestiones que son básicas.
__________________
Temiqui Iztoc Cualtlia Elhuayotl
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 04:28.