[Php-avanzado] tablas 1.3 de autoclas

Carlos Brandes carlosbrandes en gmail.com
Jue Sep 3 12:01:54 ART 2009


Leonardo:te conesto intercalado.

El 2 de septiembre de 2009 22:47, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:

> Hola Carlos,
>
> El mar, 01-09-2009 a las 08:27 -0300, Carlos Brandes escribió:
> > Leonardo volvi sobre algunos de mis pasos, te mando el nuevo .sql.
>
>         te lo comento debajo.
>
> >  Encontre una base de datos que use de provincias departamentos y
> > localidades, por eso notaras algunas diferencias con la estructura
> > anterior, que tenia una tabla menos.
>
>         Ok.... eso de tener "departamentos" te va a dar a vos y a Javier un
> dolor de cabeza...
>        Además, con enviar la estructura es suficiente.... me mandaste todos
> los datos!



> (este curso me enseño a compartir, sobre todas las cosas ;) en realidad
> solo me intereza la ciudad y la provincia donde vive el anunciante"por el
> tema de las busquedas que hagan los interesados", no asi la direccion
> especifica, ya que el contacto se realizara por otros carriles)
>
> > Con respecto a las innodb aca encontre un articulo que me aclaro un
> > poquito las cosas. http://www.tufuncion.com/myisam-vs-innodb
>
>         Me alegra!
>        Básicamente las diferencias son la integridad referencial y un mejor
> soporte para las ACID, que MyISAM tiene pero no completo, si bien sirve
> para los usos comunes.
>
> > PD: El sabado tengo que viajar, que opciones tengo luego para entregar
> > la tesis?
>
>         Todos los jueves estaré de 18 a 22hs con el curso de PHP Avanzado
> del
> 2do cuatrimestre.
>        Podés pasar a consultar o a entregar cualquier día, pero si avisás
> antes, mejor, para saber que tenés lugar. Igual, prefiero que vengas sin
> avisar a que no vengas por no haber avisado...
>        Cuanto antes entregues, mejor...
>

Si si es lo que quiero hacer


>
>
> --
> -- Estructura de tabla para la tabla `anunciantes`
> --
>
> CREATE TABLE `anunciantes` (
>  `id_anunciante` int(11) unsigned NOT NULL auto_increment,
>  `nombre` varchar(50) collate latin1_spanish_ci NOT NULL,
>  `apellido` varchar(50) collate latin1_spanish_ci NOT NULL,
>  `usuario` varchar(30) collate latin1_spanish_ci NOT NULL,
>  `password` varchar(30) collate latin1_spanish_ci NOT NULL,
>  `email` varchar(100) collate latin1_spanish_ci NOT NULL,
>  `id_localidad` int(11) unsigned NOT NULL,
>  `sexo` enum('femenino','masculino') collate latin1_spanish_ci NOT
> NULL,(corregido)
>  `telefono` varchar(30) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_anunciante`),
>  UNIQUE KEY `id_ciudad` (`id_localidad`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;
>
>
>        Ajá, sexo es un enum... y de dónde vas a leer los datos para cargar
> en
> una combo o armar botones de radio?
>        Los campos ENUM son para restringir la posibilidad de ingresar
> datos,
> pero no reemplazan a las relaciones....
>        La clave única que definiste significa que no podrá haber dos
> anunciantes en la misma ciudad... es esto correcto para tu sistema? (esto
> no lo entiendo a nivel de relaciones. pero hice lo que me sugeriste)
>


>        Definí para mejorar la performance un índice por
> "usuario"+"password" y
> otro para mostrar por apellido y nombre (o al revés).
>
> Que te parece esto asi??

CREATE TABLE `anunciantes` (
>   `id_anunciante` int(11) unsigned NOT NULL auto_increment,
>   `nombre` varchar(50) collate latin1_spanish_ci NOT NULL,
>   `apellido` varchar(50) collate latin1_spanish_ci NOT NULL,
>   `usuario` varchar(30) collate latin1_spanish_ci NOT NULL,
>   `password` varchar(30) collate latin1_spanish_ci NOT NULL,
>   `email` varchar(100) collate latin1_spanish_ci NOT NULL,
>   `id_localidad` int(11) unsigned NOT NULL,
>   `sexo` varchar(10) collate latin1_spanish_ci NOT NULL,   (corregido)
>   `telefono` varchar(30) collate latin1_spanish_ci NOT NULL,
>   PRIMARY KEY  (`id_anunciante`),
>   UNIQUE KEY `id_ciudad` (`id_localidad`),
>   KEY `usuario` (`usuario`,`password`),
>   KEY `apellido` (`apellido`,`nombre`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;


Todavis no tengo claro como usarlos en las consultas(a los indices, pero
encontre algo aca. http://www.ignside.net/man/mysql/indices.php )



>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `avisos`
> --
>
> CREATE TABLE `avisos` (
>  `id_avisos` int(10) unsigned NOT NULL auto_increment, (corregido) (se me
> chispoteo, fijate que en el resto de las tablas los campos claves estan en
> singular)



>
>  `kilometros` int(11) NOT NULL,
>  `precio` float NOT NULL,
>  `fecha_publicacion` date NOT NULL,
>  `descripcion` varchar(150) collate latin1_spanish_ci NOT NULL,
>  `id_moneda` int(11) NOT NULL,
>  `id_anunciante` int(11) NOT NULL,
>  `id_operacion` int(11) NOT NULL,
>  `id_condicion` int(11) NOT NULL,
>  `id_modelo` int(11) NOT NULL,
>  `id_combustible` int(11) NOT NULL,
>  `id_caracteristica` int(11) NOT NULL,
>  PRIMARY KEY  (`id_avisos`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;
>
>        Es más correcto que la clave esté en singular, y no en plural. Te
> vas a
> confundir al escribir el código.
>
>
> --
> -- Volcar la base de datos para la tabla `avisos`
> --
>
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `caracteristicas`
> --
>
> CREATE TABLE `caracteristicas` (
>  `id_caracteristica` int(11) unsigned NOT NULL auto_increment,
>  `caracteristica` varchar(30) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_caracteristica`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;
>
> --
> -- Volcar la base de datos para la tabla `caracteristicas`
> --
>
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `combustibles`
> --
>
> CREATE TABLE `combustibles` (
>  `id_combustible` int(11) unsigned NOT NULL auto_increment,
>  `combustible` varchar(30) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_combustible`)
> ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=4 ;
>
> --
> -- Volcar la base de datos para la tabla `combustibles`
> --
>
> INSERT INTO `combustibles` VALUES (1, 'nafta');
> INSERT INTO `combustibles` VALUES (2, 'gasoil');
> INSERT INTO `combustibles` VALUES (3, 'gnc');
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `condiciones`
> --
>
> CREATE TABLE `condiciones` (
>  `id_condicion` int(11) unsigned NOT NULL auto_increment,
>  `condicion` varchar(50) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_condicion`)
> ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=3 ;
>
> --
> -- Volcar la base de datos para la tabla `condiciones`
> --
>
> INSERT INTO `condiciones` VALUES (1, 'particular');
> INSERT INTO `condiciones` VALUES (2, 'agencia');
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `departamentos`
> --
>
> CREATE TABLE `departamentos` (
>  `id_departamento` int(11) unsigned NOT NULL,
>  `id_provincia` int(11) unsigned NOT NULL,
>  `departamento` varchar(50) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_departamento`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
>
> --
> -- Volcar la base de datos para la tabla `departamentos`
> --
>
> INSERT INTO `departamentos` VALUES (1, 2, 'Adolfo Alsina');
> INSERT INTO `departamentos` VALUES (2, 2, 'Adolfo Gonzales Chaves');
>
> --
> -- Estructura de tabla para la tabla `imagenes`
> --
>
> CREATE TABLE `imagenes` (
>  `id_imagen` int(11) unsigned NOT NULL auto_increment,
>  `path` varchar(100) collate latin1_spanish_ci NOT NULL,
>  `id_aviso` int(11) unsigned NOT NULL,
>  PRIMARY KEY  (`id_imagen`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;
>
> --
> -- Volcar la base de datos para la tabla `imagenes`
> --
>
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `localidades`
> --
>
> CREATE TABLE `localidades` (
>  `id_localidad` int(11) unsigned NOT NULL,
>  `id_departamento` int(11) unsigned NOT NULL,
>  `localidad` varchar(50) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_localidad`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
>
> --
> -- Volcar la base de datos para la tabla `localidades`
> --
>
> INSERT INTO `localidades` VALUES (1, 1, 'Carhué');
> INSERT INTO `localidades` VALUES (2, 1, 'Colonia San Miguel Arcángel');
>
> CREATE TABLE `marcas` (
>  `id_marca` int(11) unsigned NOT NULL auto_increment,
>  `marca` varchar(50) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_marca`)
> ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=102 ;
>
> --
> -- Volcar la base de datos para la tabla `marcas`
> --
>
> INSERT INTO `marcas` VALUES (1, 'Acura');
> INSERT INTO `marcas` VALUES (2, 'Aleko');
>
> --
> -- Estructura de tabla para la tabla `modelos`
> --
>
> CREATE TABLE `modelos` (
>  `id_modelo` int(11) unsigned NOT NULL auto_increment,
>  `modelo` varchar(50) collate latin1_spanish_ci NOT NULL,
>  `id_marca` int(11) unsigned NOT NULL,
>  PRIMARY KEY  (`id_modelo`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=1 ;
>
> --
> -- Volcar la base de datos para la tabla `modelos`
> --
>
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `monedas`
> --
>
> CREATE TABLE `monedas` (
>  `id_moneda` int(11) unsigned NOT NULL auto_increment,
>  `moneda` varchar(30) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_moneda`)
> ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=4 ;
>
> --
> -- Volcar la base de datos para la tabla `monedas`
> --
>
> INSERT INTO `monedas` VALUES (1, 'dolares');
> INSERT INTO `monedas` VALUES (2, 'euros');
> INSERT INTO `monedas` VALUES (3, 'pesos');
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `operaciones`
> --
>
> CREATE TABLE `operaciones` (
>  `id_operacion` int(11) unsigned NOT NULL auto_increment,
>  `operacion` varchar(30) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_operacion`)
> ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci
> AUTO_INCREMENT=4 ;
>
> --
> -- Volcar la base de datos para la tabla `operaciones`
> --
>
> INSERT INTO `operaciones` VALUES (1, 'compra');
> INSERT INTO `operaciones` VALUES (2, 'venta');
> INSERT INTO `operaciones` VALUES (3, 'permuta');
>
> -- --------------------------------------------------------
>
> --
> -- Estructura de tabla para la tabla `provincias`
> --
>
> CREATE TABLE `provincias` (
>  `id_provincia` int(11) unsigned NOT NULL,
>  `provincia` varchar(50) collate latin1_spanish_ci NOT NULL,
>  PRIMARY KEY  (`id_provincia`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
>
> --
> -- Volcar la base de datos para la tabla `provincias`
> --
>
> INSERT INTO `provincias` VALUES (1, 'BUENOS AIRES');
> INSERT INTO `provincias` VALUES (2, 'CATAMARCA');
>
>
>        El resto se ve bien...
>
>        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
>
------------ 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/20090903/f6adac48/attachment-0001.htm 


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