[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