[Php-avanzado] Leo: A ver que te parece esto...
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Nov 23 00:21:43 ARST 2009
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?
> -- 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.
> --
> -- 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á...]
> --
> -- 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 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...
Seguimos!!!
Dale que falta poco!!!
--
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