[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