[Php-avanzado] Leo: A ver que te parece esto...
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Nov 27 11:13:47 ARST 2009
Hola Carolina,
ahora los votos están bien.
Lo de "no me di cuenta y me quedó en la cabeza el funcionamiento q
habias planteado anteriormente." se me escapa: la versión que tenía una
sola tabla de votos, tenía un discriminador que era clave foránea del
tipo de cosa, pero no un "voto" entero. La idea era tener un
"tipo_de_cosa" y no un "tipo_de_voto".
Mandame así como está pasado en limpio para archivarlo como la
normalización de tu proyecto.
Seguimos!
El vie, 27-11-2009 a las 09:47 -0300, Silverzero escribió:
>
>
> 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
Más información sobre la lista de distribución Php-avanzado