[Php-avanzado] tablas 1.3 de autoclas
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Mie Sep 2 22:47:11 ART 2009
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!
> 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...
--
-- 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,
`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?
Definí para mejorar la performance un índice por "usuario"+"password" y
otro para mostrar por apellido y nombre (o al revés).
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `avisos`
--
CREATE TABLE `avisos` (
`id_avisos` int(10) unsigned NOT NULL auto_increment,
`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
Más información sobre la lista de distribución Php-avanzado