[Php-avanzado] Consulta para Leo
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Mar Nov 10 03:31:57 ARST 2009
Hola Carolina,
me parece que vas a tener que darte una vuelta por la facu para ver
esto juntos.
Aparecen unas tablas "raices" que antes no estaban y que no parecen
estar bien.
Lo último que habíamos discutido contigo (si no me acuerdo mal) era el
tema de los votos, pero lo demás ya estaba. Ahora está cambiado y pueden
estar pasando dos cosas (o más): cambiaste lo que estabas haciendo y no
se corresponde con el requerimiento o bien hay cosas mal normalizadas.
Si podés, estaría de veras bueno que nos veamos, así terminamos esto
más rápido... no me parece buena idea que pierdas tiempo a esta altura
del año...
Salu2!
El lun, 09-11-2009 a las 18:12 -0300, Silverzero escribió:
> Hola Leo,
>
> Acá vá:
>
> -- phpMyAdmin SQL Dump
> -- version 2.11.9.5
> -- http://www.phpmyadmin.net
> --
> -- Servidor: localhost
> -- Tiempo de generación: 09-11-2009 a las 19:10:53
> -- Versión del servidor: 5.0.81
> -- Versión de PHP: 5.2.9
>
> SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
>
> --
> -- Base de datos: `salimas_sitio`
> --
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `actividades`
> --
>
> CREATE TABLE IF NOT EXISTS `actividades` (
> `id` int(11) NOT NULL auto_increment,
> `fecha` date NOT NULL,
> `desde` date NOT NULL,
> `hasta` date NOT NULL,
> `horario` varchar(50) collate utf8_unicode_ci NOT NULL,
> `titulo` varchar(50) collate utf8_unicode_ci NOT NULL,
> `descripcion` text collate utf8_unicode_ci NOT NULL,
> `imagen` varchar(50) collate utf8_unicode_ci NOT NULL,
> `url` varchar(50) collate utf8_unicode_ci NOT NULL,
> `precio` varchar(50) collate utf8_unicode_ci NOT NULL,
> `id_visitante` int(11) NOT NULL,
> `id_lugar` int(11) NOT NULL,
> `id_stat` int(2) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=2 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `actividades_cat`
> --
>
> CREATE TABLE IF NOT EXISTS `actividades_cat` (
> `id` int(11) NOT NULL auto_increment,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=13 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `actividades_raices`
> --
>
> CREATE TABLE IF NOT EXISTS `actividades_raices` (
> `id` int(11) NOT NULL auto_increment,
> `id_act` int(11) NOT NULL,
> `id_subcat` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=1 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `actividades_subcat`
> --
>
> CREATE TABLE IF NOT EXISTS `actividades_subcat` (
> `id` int(11) NOT NULL auto_increment,
> `id_actividad_cat` int(11) NOT NULL,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=123 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `diccionario`
> --
>
> CREATE TABLE IF NOT EXISTS `diccionario` (
> `id` int(11) NOT NULL auto_increment,
> `frase` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=38 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `eventos`
> --
>
> CREATE TABLE IF NOT EXISTS `eventos` (
> `id` int(11) NOT NULL auto_increment,
> `fecha` date NOT NULL,
> `desde` date NOT NULL,
> `hasta` date NOT NULL,
> `horario` varchar(50) collate utf8_unicode_ci NOT NULL,
> `titulo` varchar(50) collate utf8_unicode_ci NOT NULL,
> `descripcion` text collate utf8_unicode_ci NOT NULL,
> `imagen` varchar(50) collate utf8_unicode_ci NOT NULL,
> `url` varchar(100) collate utf8_unicode_ci NOT NULL,
> `precio` varchar(50) collate utf8_unicode_ci NOT NULL,
> `id_visitante` int(11) NOT NULL,
> `id_lugar` int(11) NOT NULL,
> `id_stat` int(2) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=4 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `eventos_cat`
> --
>
> CREATE TABLE IF NOT EXISTS `eventos_cat` (
> `id` int(11) NOT NULL auto_increment,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=15 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `eventos_raices`
> --
>
> CREATE TABLE IF NOT EXISTS `eventos_raices` (
> `id` int(11) NOT NULL auto_increment,
> `id_evento` int(11) NOT NULL,
> `id_subcat` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=1 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `eventos_subcat`
> --
>
> CREATE TABLE IF NOT EXISTS `eventos_subcat` (
> `id` int(11) NOT NULL auto_increment,
> `id_evento_cat` int(11) NOT NULL,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=123 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `localidades`
> --
>
> CREATE TABLE IF NOT EXISTS `localidades` (
> `cod_loc` int(4) NOT NULL auto_increment,
> `cod_prov` int(2) NOT NULL,
> `desc` varchar(31) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`cod_loc`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=2383 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `lugares`
> --
>
> CREATE TABLE IF NOT EXISTS `lugares` (
> `id` int(11) NOT NULL auto_increment,
> `fecha` date NOT NULL,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> `direccion` varchar(50) collate utf8_unicode_ci NOT NULL,
> `telefono` varchar(50) collate utf8_unicode_ci NOT NULL,
> `email` varchar(50) collate utf8_unicode_ci NOT NULL,
> `horario` varchar(50) collate utf8_unicode_ci NOT NULL,
> `precio` varchar(50) collate utf8_unicode_ci NOT NULL,
> `descripcion` text collate utf8_unicode_ci NOT NULL,
> `imagen` varchar(50) collate utf8_unicode_ci NOT NULL,
> `url` varchar(50) collate utf8_unicode_ci NOT NULL,
> `id_visitante` int(11) NOT NULL,
> `cod_loc` int(4) NOT NULL,
> `id_stat` int(2) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=11 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `lugares_cat`
> --
>
> CREATE TABLE IF NOT EXISTS `lugares_cat` (
> `id` int(11) NOT NULL auto_increment,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=16 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `lugares_raices`
> --
>
> CREATE TABLE IF NOT EXISTS `lugares_raices` (
> `id` int(11) NOT NULL auto_increment,
> `id_lug` int(11) NOT NULL,
> `id_subcat` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=1 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `lugares_subcat`
> --
>
> CREATE TABLE IF NOT EXISTS `lugares_subcat` (
> `id` int(11) NOT NULL auto_increment,
> `id_lugar_cat` int(11) NOT NULL,
> `nombre` varchar(50) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=1 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `provincias`
> --
>
> CREATE TABLE IF NOT EXISTS `provincias` (
> `cod_prov` int(2) NOT NULL,
> `desc` varchar(30) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`cod_prov`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `status`
> --
>
> CREATE TABLE IF NOT EXISTS `status` (
> `id` int(11) NOT NULL,
> `stat` varchar(10) collate utf8_unicode_ci NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `visitantes`
> --
>
> CREATE TABLE IF NOT EXISTS `visitantes` (
> `id` int(11) NOT NULL auto_increment,
> `fecha` date NOT NULL,
> `nombres` varchar(50) collate utf8_unicode_ci NOT NULL,
> `apellidos` varchar(50) collate utf8_unicode_ci NOT NULL,
> `alias` varchar(50) collate utf8_unicode_ci NOT NULL,
> `email` varchar(50) collate utf8_unicode_ci NOT NULL,
> `pass` varchar(50) collate utf8_unicode_ci NOT NULL,
> `avatar` varchar(50) collate utf8_unicode_ci NOT NULL,
> `ocupacion` varchar(50) collate utf8_unicode_ci NOT NULL,
> `about` text collate utf8_unicode_ci NOT NULL,
> `intereses` text collate utf8_unicode_ci NOT NULL,
> `url` varchar(50) collate utf8_unicode_ci NOT NULL,
> `id_stat` int(2) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=3 ;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `votos_actividades`
> --
>
> CREATE TABLE IF NOT EXISTS `votos_actividades` (
> `id` int(11) NOT NULL,
> `votos` int(11) NOT NULL default '0',
> `puntaje` int(11) NOT NULL default '0',
> `id_actividad` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `votos_eventos`
> --
>
> CREATE TABLE IF NOT EXISTS `votos_eventos` (
> `id` int(11) NOT NULL,
> `votos` int(11) NOT NULL default '0',
> `puntaje` int(11) NOT NULL default '0',
> `id_evento` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `votos_lugares`
> --
>
> CREATE TABLE IF NOT EXISTS `votos_lugares` (
> `id` int(11) NOT NULL,
> `votos` int(11) NOT NULL default '0',
> `puntaje` int(11) NOT NULL default '0',
> `id_lugar` int(11) NOT NULL,
> PRIMARY KEY (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> ¡Gracias!
> ¡Saludos!
>
> 2009/11/9 Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar>
> Hola Carolina,
>
> por favor, enviame _todas_ las tablas, porque como ya
> sabés, la
> normalización es un tema que debe ser evaluado en un contexto
> y como un
> todo...
>
>
> El lun, 09-11-2009 a las 00:00 -0300, Silverzero escribió:
>
> > Creo que la tabla que falta sería:
> >
> > eventos_catsubcat:
> >
> > id
> > id_evento
> > id_subcat
> >
> > y a la categoría que no tiene subcategorias le hago una con
> el mismo
> > nombre, como me dijiste.
> > Está bien así?
> >
> > Saludos.
> >
> > 2009/11/6 Silverzero <silverzero.52 en gmail.com>
> >
> >
> > 2009/11/5 Leonardo Tadei - Pegasus Tech Supply
> > <leonardot en pegasusnet.com.ar>
> >
> > Hola Carolina!
> >
> >
> > estuve revisando tu SRS (porque no me
> acordaba
> > algunos detalles).
> > Necesito que me reenvíes las tablas
> > normalizadas que tengas para
> > revisarlo, porque recordaba una relación uno
> a uno
> > entre subcategorías y
> > eventos, pero tu SRS dice claramente
> múltiples así que
> > será muchos a
> > muchos... es decir que de las 3 tablas que
> me
> > enviaste, hace falta otra
> > más para la relación.
> >
> >
> >
> > Aca te mando la de eventos, que para actividades y
> lugares va
> > a ser lo mismo, asi que lo que me digas lo repito
> para el
> > resto. Si me pudieras explicar como funcionaría la
> relación
> > con la tabla que falta, te lo re agradezco.
> >
> >
> > CREATE TABLE IF NOT EXISTS `eventos` ( `id` int(11)
> NOT NULL
> > auto_increment, `fecha` date NOT NULL, `desde` date
> NOT NULL,
> > `hasta` date NOT NULL, `horario` varchar(50) collate
> > utf8_unicode_ci NOT NULL, `titulo` varchar(50)
> collate
> > utf8_unicode_ci NOT NULL, `descripcion` text collate
> > utf8_unicode_ci NOT NULL, `imagen` varchar(50)
> collate
> > utf8_unicode_ci NOT NULL, `url` varchar(100) collate
> > utf8_unicode_ci NOT NULL, `precio` varchar(50)
> collate
> > utf8_unicode_ci NOT NULL, `id_visitante` int(11) NOT
> NULL,
> > `id_lugar` int(11) NOT NULL, `id_stat` int(2) NOT
> NULL,
> > PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT
> CHARSET=utf8
> > COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;
> >
> >
> > CREATE TABLE IF NOT EXISTS `eventos_cat` ( `id`
> int(11) NOT
> > NULL auto_increment, `nombre` varchar(50) collate
> > utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) )
> ENGINE=MyISAM
> > DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=15 ;
> >
> >
> > CREATE TABLE IF NOT EXISTS `eventos_subcat` ( `id`
> int(11) NOT
> > NULL auto_increment, `id_evento_cat` int(11) NOT
> NULL,
> > `nombre` varchar(50) collate utf8_unicode_ci NOT
> NULL, PRIMARY
> > KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8
> > COLLATE=utf8_unicode_ci AUTO_INCREMENT=123 ;
> >
> >
> >
> >
> >
> > El jue, 05-11-2009 a las 10:50 -0300,
> Silverzero
> > escribió:
> > > Estuve haciendo búsqueda y encontré que
> cuando
> > necesitás guardar una
> > > serie de cantidad de datos que no sabes
> cuantos va a
> > elegir el
> > > usuario, lo conveniente es (segun algunos)
> guardar
> > estos datos en un
> > > array haciendo implode/explode o
> > serialize/unserialize, pero entra en
> > > debate la normalización.
> >
> >
> > Por supuesto! Además con este modelo
> son
> > ineficientes las consultas, y
> > después tenés que gastar todavía más
> procesamiento en
> > dividir lo que
> > tengas guardado.
> > No parece nada conveniente... al
> menos no le
> > encuentro ninguna ventaja
> > y sí muchas desventajas.
> >
> > > Porque yo no sé en cuales/cuantas
> categorías el
> > visitante va a
> > > publicar un evento, y menos cuantas
> subcategorías.
> >
> >
> > Pero no importa si plnateás una
> relación muchos
> > a muchos, que mapea
> > justamente eso.
> >
> > > Y por lo que veo, por más que no sean
> propiamente
> > TAGS, creo que en
> > > este caso se comportarían de una manera
> similar...
> > >
> > > Acá encontré un artículo de como aplicar
> estructuras
> > para folksonomías
> > > en mysql.
> > > http://forge.mysql.com/wiki/TagSchema
> >
> >
> > Sí, pero fijate que la discusión va
> mostrando
> > implementaciones malas, y
> > las va corrigiendo hasta que termina en 33F
> que está
> > ilustrada bajo
> > "Recommended Architecture" !!!
> > Tu SRS no implica nada que tenga que
> ver con la
> > "dimensión del usuario"
> > del artículo, ya que vos tenés una
> correspondencia
> > entre el usuario y
> > sus eventos y lugares.
> >
> > Seguimos!
> >
> >
> >
> > PD: yo te avisé que esta tesis era demasiado
> > grande... :(
> >
> >
> > No pasa nada, de última veo qué le saco que no sea
> > totaaaaaalmente escencial, tal vez lo de las
> votaciones por
> > ejemplo. Se lo agrego yo después si no llego para el
> plazo de
> > la entrega.
> >
> >
> > Gracias por tu tiempo Leo.
> >
> >
> > Saludos!
> >
> >
> > Carolina.
> >
> >
> > --
> >
> >
> > Leonardo Tadei
> > leonardot en pegasusnet.com.ar
> > http://blog.pegasusnet.com.ar
> > Firma pública:
> >
> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> >
> >
> _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> >
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> >
> >
> >
> >
> >
> > --
> > Carolina Derromediz
> > Cel. +54 223 5301599
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> >
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> --
>
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública:
> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
>
>
> --
> Carolina Derromediz
> Cel. +54 223 5301599
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado