[Php-avanzado] Leo: A ver que te parece esto...

Silverzero silverzero.52 en gmail.com
Vie Nov 27 10:47:42 ARST 2009


2009/11/22 Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar
>

> Hola Carolina,
>
> El vie, 13-11-2009 a las 00:35 -0300, Silverzero escribió:
> > ok, porque presentía la posibilidad de que podría mamarrachear, no
> > borré las tablas anteriores, asi que lo dejo como antes, y ya que
> > estamos para seguir con la linea dejo las tablas de votos
> > tradicionales, asi no me hago lío y listo...
>
>         Ok.
>
> > y agregué la tabla "publico" (id, publico) para poner 2 registros:
> > adulto, niño y le agregue un campo refiriendo a esto a cada tabla de
> > evento, actividad y lugar.
>
>         Carolina: volviste a modificar los requerimientos entonces???
>        Así no vas a terminar más!!!
>        Mandame los requerimientos nuevos en los que se mencione al Público
> y
> sus tipos para poder evaluar las nuevas tablas.
>
>        Por otra parte, te sugiero que _no_ hagas este cambio ahora, y sigas
> con tu enorme tesis sin agregarle cosas nuevas.
>        Ya tendrás tiempo de hacer la versión 2, la 3 y todas las que
> quieras.
>        Carolina!!!!!!!!!!!!!!!!!!
>
> > Muchas gracias nuevamente, y disculpame por favor Leo que tengas que
> > revisar todo a cada rato...acá van:
>
>         No es molestia.
>        Yo anduve con lag por las VII Jornadas de Software Libre...
>
>        En esta corrección, voy a hacer de cuenta que no hay referencia al
> Público. Ok?
>

Oki doki!

>
>
> > -- phpMyAdmin SQL Dump
> > -- version 2.11.9.5
> > -- http://www.phpmyadmin.net
> > --
> > -- Servidor: localhost
> > -- Tiempo de generación: 13-11-2009 a las 01:32:26
> > -- 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 `actividadesXcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `actividadesXcat` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `id_act` int(11) NOT NULL,
> >   `id_cat` int(11) NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=1 ;
>
>         Ok. Esto es una relación muchos a muchos de las Actividades con las
> Categrías.
>
> > -- --------------------------------------------------------
> >
> > --
> > -- Estructura de tabla para la tabla `actividadesXsubcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `actividadesXsubcat` (
> >   `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 ;
>
>         Ok. Esto es una relación muchos a muchos de las Actividades con las
> SubCategrías.
>
>
> > -- --------------------------------------------------------
> >
> > --
> > -- 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=1 ;
>
>         Ok. Las Categorías...
>
> > --
> > -- 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=1 ;
>
>         Ok. Las Subcategorías ahora tienen una Categoría a la que hacen
> referencia.
>
>        Yo sigo sin encontrarle sentido a que una Actividad pueda tener una
> Categoría y no una Subcategoría, en vez de usar el simplísimo modelo de
> tener siempre una Subcategoría para las Actividades, pero que no lo
> entienda no significa nada.
>        La normalización, en el escenario que vos planteás en tu SRS está
> bien.
>

Entiendo lo que decís, lo que pasa es que en cada publicación van a figurar
como links todas las subcategorías en las que dicha publicación fue puesta,
y si entre esas hubiera una categoría sin subcategoría (o sea, una
subcategoría con nombre igual a la categoría), figuraría en el listado ese y
sería redundante...(aunque podría filtrar ese listado para que no muestre
una subcategoría si tiene el mismo nombre que categoría, pero no sería
complicarla mas?). Ademas cada link va a funcionar como filtro de busqueda
por dicha subcategoria y si hubiera una subcategoria=categoria, filtraría
igual que con categoría y sería redundante también.


> > --
> > -- 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 `eventosXcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `eventosXcat` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `id_eve` int(11) NOT NULL,
> >   `id_cat` 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 `eventosXsubcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `eventosXsubcat` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `id_eve` 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_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=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=1 ;
>
>         Ok para los Eventos...
>
> > --
> > -- 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 `lugaresXcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `lugaresXcat` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `id_lug` int(11) NOT NULL,
> >   `id_cat` 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 `lugaresXsubcat`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `lugaresXsubcat` (
> >   `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_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=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 ;
>
>         Ok para los lugares.
>
> > --
> > -- 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;
> >
>
>         [borré las cosas que sobraban acá...]
>

ok!


>
> > --
> > -- 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 auto_increment,
> >   `voto` int(11) NOT NULL,
> >   `puntaje` int(11) NOT NULL,
> >   `id_ref` int(11) NOT NULL,
> >   `id_tipo` int(11) NOT NULL,
> >   `id_visitante` int(11) NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=1 ;
>
>         Por qué voto es un entero?
>        Mejor dicho: para qué hay un campo "voto"???
>
> > -- --------------------------------------------------------
> >
> > --
> > -- Estructura de tabla para la tabla `votos_eventos`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `votos_eventos` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `voto` int(11) NOT NULL,
> >   `puntaje` int(11) NOT NULL,
> >   `id_ref` int(11) NOT NULL,
> >   `id_tipo` int(11) NOT NULL,
> >   `id_visitante` int(11) NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=1 ;
>
>         Idem anterior
>
> > --
> > -- Estructura de tabla para la tabla `votos_lugares`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `votos_lugares` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `voto` int(11) NOT NULL,
> >   `puntaje` int(11) NOT NULL,
> >   `id_ref` int(11) NOT NULL,
> >   `id_tipo` int(11) NOT NULL,
> >   `id_visitante` int(11) NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=1 ;
>
>         idem anterior.
>
>
>        Me da le leve sensación de que la estructura para los votos (la de
> cada
> tabla, no hay problema en usar tablas separadas) no se corresponde con
> el funcionamiento...
>
>        También hacés referencia a un id_tipo en las 3 tablas pero ahora no
> hay
> tipo, según decís al principio de este mail.
>

si, me equivoqué ahi, no me di cuenta y me quedó en la cabeza el
funcionamiento q habias planteado anteriormente.

Entonces las 3 tablas de votos la dejamos asi:

CREATE TABLE IF NOT EXISTS `votos_**********` (
>   `id` int(11) NOT NULL auto_increment,
>   `puntaje` int(11) NOT NULL,
>   `id_ref` int(11) NOT NULL,
>   `id_visitante` int(11) NOT NULL,
>   PRIMARY KEY  (`id`)
> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> AUTO_INCREMENT=1 ;

>
>        Si no cambiás los requerimeintos, para tu SRS original las tablas
> están
> bien, excepto las de los votos.
>
>        Ponete YA a escribir la parte que hace funcionar esto, y mientras
> charlamos de los votos. Asumo que ya tenés armadas las pantallas, los
> formularios y la estética, y solo te falta conectarlos con las tablas,
> porque si no vas a estar muy apretada para llegar a tiempo con todo
> esto...
>

Si ya tengo bastante de la estética, tengo algunas funciones y otras
cositas.


>
>        Seguimos!!!
>        Dale que falta poco!!!
>
>
Gracias Leo!
Saludos!

> --
>
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20091127/294e7652/attachment-0001.htm 


Más información sobre la lista de distribución Php-avanzado