Venta de Inmuebles - Parte 1, Base de Datos

Anuncio
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Venta de Inmuebles - Parte 1, Base de Datos
EL objetivo de esta guia es que se familiaricen con el uso de phpMyAdmin, crear BD, crear
y administrar Tablas, etc. Para ello tomaremos como ejemplo una base de datos de Venta
de Inmuebles. Repito este es un ejemplo simple para familiarizarce con MySQL como base
de datos, por tal motivo en un caso real este debería tener mas controles y un análisis
mas profundo de su base de datos.
Veamos paso a paso, el razonamiento para crear una Aplicación Web (la Base de Datos por
el momento) de manejo de Venta de Inmuebles o Inmobiliarias, realizado de forma
practica y utilizando MySQL.
Estructura de la Base de Datos
Existen básicamente dos formas de hacer una Web de Inmobiliaria, una es crear los
HTML, del sitio y una pagina por cada propiedad, siendo estos fijos, y obligando a crear
manualmente una página por cada propiedad. Esto no es recomendable para un negocio
real donde compran, venden, se agregan y rentan propiedades a diario o semanalmente y
por tanto mi sugerencia es hacerlo dinámico.
Un sitio dinámico seria tener una Base de Datos con todas las propiedades, y que en esa
base de datos se agreguen, o marquen como vendidas o rentadas las que ya no deben
aparecer en la Web, para esto usaremos una base MySQL.
Esa base de datos MySQL la leeremos en Internet con una pagina PHP (no HTML) que
automáticamente lee cada propiedad y la muestra repitiendo esa pagina para cada
propiedad sin tener que hacerla manualmente uno por vez, esta es la gran ventaja de
realizar sitios de esta forma (esto en otra practica futura).
Por definición, una Base de Datos es un Conjunto de Información, lo son las fichas de
papel que tenían en algunas oficinas (antiguas o actuales quedadas en el tiempo) y lo son
las que por medio de la informática podemos almacenar en nuestras computadoras. En
este caso ese conjunto de información, lo tendremos almacenado en nuestra base de
datos en el Servidor, la cual será almacenada y gestionada por el Motor de Base de
Datos MySQL, que es por otra parte el que mejor se lleva con PHP y le mejor elección
para estos casos.
Ese conjunto de información debe tener lo que se llama Estructura. La estructura es la
forma en que se organiza la información, para saber la estructura debemos ver que
datos deseamos almacenar, a esto se le llama Análisis de Bases de Datos, que en
aplicaciones de gran tamaño lleva su tiempo, y se requiere de ciertos conocimientos y
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
practica para desarrollar la misma ya que es lo que puede facilitar o complicar la
aplicación en el futuro, o que esta sea mas o menos posible de ampliar para nuevos fines.
Como dijimos, esta asignatura es para ilustrar el funcionamiento de PHP y MySQL, no para
crear analistas o ingenieros de software, por tanto lo haremos de manera sencilla.
Que datos vamos a manejar en la Web ¿?
Obviamente vamos a manejar una lista de Propiedades, estas propiedades van a tener
datos como Metros Cuadrados, Baños, Habitaciones, Precio, Ubicación o Población, o
Ciudad, etc., además del Precio de Venta, o Renta, entre otros datos que podrán agregar
en cada caso si lo desean.
De los datos mencionados tenemos que pensar como llenaríamos los mismos, por ejemplo
si es una caja de texto, una lista desplegable, etc. Los metros cuadrados, los baños, las
habitaciones, pueden ser cajas de texto simples.
El precio, depende del tipo de propiedad, o sea si es una propiedad en venta tendrá un
precio de venta, pero si es para renta mensual tendrá otro precio. En este punto es bueno
entonces que tengamos 3, datos:


Precio de Venta
Precio de Renta
Y otro que indique el Tipo de Propiedad, que puede ser:



Venta
Renta
Ambos
Ya que puede ser para venta y/o renta.
La ubicación, puede ser una lista desplegable de ciudades formada por las ciudades de la
zona donde esta nuestra inmobiliaria, en este caso es mejor prevenir que se ingresen los
mismos datos de diferente forma, por ejemplo que un operario ingrese como “Santa
Lucia”, otro como “Ciudad de Santa Lucia” y otro como “St Lucia”, es por eso que mi
sugerencia es usar una lista de ciudades que estarán previamente almacenadas en la Base
de Datos y se mostraran en una lista desplegable al ingresar cada propiedad. Esta lista de
ciudades puede ser ampliable o modificarse en futuro, por tanto así como
las propiedades ocupara otra Tabla, de la base de datos.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Que es una tabla ¿?
La base de datos como dijimos, es el conjunto de toda la información de nuestra Web
de Venta de Inmuebles, esa base, esta dividida en Tablas, cada tabla representa un
grupo de información, hasta ahora tenemos pensadas dos Tablas:
Propiedades, que almacena la lista de propiedades, se podrán agregar, modificar y
eliminar a gusto.
Ciudades, que almacena la lista de ciudades, también se podrán agregar, modificar y
eliminar a gusto.
Que son los campos ¿?
Como dijimos, la Base de Datos esta formada por Tablas que agrupan los datos, y a su
vez cada Tabla, estará formada por Campos. Los Campos, son cada uno de los datos
que identifica un elemento de la Tabla. Por ejemplo hemos mencionado ya los campos,
metros cuadrados, baños, habitaciones, precio, etc.
Que son los registros ¿?
Los Registros son los elementos almacenados en cada Tabla, por ejemplo cada propiedad
ocupara un registro y cada ciudad también será un registro.
Esquemáticamente la cosa quedaría así, ya con sus nombres, los cuales es mejor no
tengan espacios ni símbolos:
Base de datos: Inmobiliaria
Tablas:

o
o
o
o
o
o
o
o
o
o
Propiedades
Id
Titulo
MtsCuadrados
Baños
Habitaciones
idCiudad
PrecioVenta
PrecioRenta
TipoInmueble
Descripción
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
o

o
o
FechaIngreso
Ciudades
Id
Nombre
Como vemos, he agregado en cada tabla un campo Id, este campo será un número que
identifique cada elemento de manera única, esto se realiza así para facilitar mas
adelante la programación del sitio y la busqueda de información.
En el caso de la tabla Propiedades, vemos un campo idCiudad, que no será otra cosa que
el numero de ciudad en la lista, esto es para ahorrarnos de guardar nuevamente el
nombre, basta solo con guardar el numero de referencia de la otra Tabla Ciudades.
Venta de Inmuebles - Parte 2, Base de Datos y phpMyAdmin
En la parte anterior, discutimos los elementos necesarios para llevar a cabo esta
aplicación Web de Venta de Inmuebles, ahora vamos a ver prácticamente como Crear la
Base de Datos y las Tablas mencionadas.
En nuestro navegador Internet Explorer, o mejor aun FireFox, vamos a cargar la
siguiente dirección:
http://localhost o http://localhost/phpmyadmin (si hemos reconfigurado la pagina de
inicio de nuestro servidor Web para que cargue automáticamente) sino
http://localhost/phpmyadmin/index.php. Lo cual nos mostrara la pagina de bienvenida
de phpMyAdmin de MySQL después de pedirnos el usuario y la clave para accesar a ella, si
usted instalo MySQL pues debe recordar que clave le puso (pruebe con root y sin clave), si
es la maquina virtual proporcionada en esta materia intente escribiendo “root” en el
usuario y “a” en la clave, si esto no funciona lo mejor seria desinstalar MySQL y volverlo a
instalar teniendo el cuidado de recordar que clave escribimos.
Igual pueden revisar el archivo leame.txt que esta en el escritorio de la maquina virtual y
ahí encontraran las claves de los productos que vamos a utilizar en la materia.
La imagen siguiente es la pantalla de bienvenida de phpMyAdmin.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Vamos a dar click en el primer link que dice phpMyAdmin Database Manager, ya que
este, como su nombre lo indica nos permitiráAdministrar las Bases de Datos MySQL de
nuestro PC o Servidor si estamos trabajando on line.
En este punto nos pedirá el nombre de usuario y contraseña del MySQL, esto lo
configuramos al momento de instalar MySQL con appserv, wamp, xampp, etc.
Luego de ingresar el usuario y contraseña correspondiente veremos una página similar a
la siguiente imagen. Esta es (o algo parecido) la página principal del phpMyAdmin.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Si miran arriba a la izquierda varemos un icono con una casita que nos permitirá
regresar a esta página inicial del phpMyAdmin.
Debajo dice Base de Datos, ahí veremos la lista de Bases de Datos que hay en nuestro
PC en el MySQL (o en el hosting), con esta lista podemos seleccionar cualquiera de ellas
para trabajar.
Crear la Base de Datos Inmobiliaria
En este caso no tenemos aun ninguna Base de Datos creada para nuestra Inmobiliaria, por
eso vamos a ir al centro de la página y donde dice: Crear nueva Base de Datos,
escribiremos “inmobiliaria” y daremos Crear. De esta forma logramos tener la Base de
Datos Inmobiliaria que mencionamos en la primera parte de esta práctica. Esta aparecerá
en la parte izquierda, como indica la siguiente imagen y en la parte central nos sugiere
ya Crear las Tablas que contendrá esta Base de Datos (recordemos que eran
Propiedades y Ciudades).
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Crear la Tabla Propiedades
Sin mas demora, en donde dice Crear nueva Tabla en la Base de Datos inmobiliaria,
escribiremos de nombre “propiedades” y en número de campos 20 (no importa que luego
sobren, es mejor poner de mas), y le damos Continuar.
Nos aparecerá una serie de 20 cajas de texto para ingresar el Nombre de cada Campo,
el Tipo del Campo y la longitud del campo.
Las Bases de Datos, para clasificar la información permiten indicarle que Tipo de
Datos contendrá cada Campo, a esto se le llama Tipo del Campo, y dependerá si es un
valor numérico sin decimales, un valor numérico con decimales, un valor de texto corto,
un valor de mucho texto, o una fecha, veremos en cada caso el apropiado.
Debemos Ingresar los Campos como indica la siguiente imagen, con sus Nombres y
Tipos, es importante tener en cuenta si usamos o no mayúsculas ya que el PHP lo
diferenciara y puede dar problemas. En mi caso no uso nunca mayúsculas, escribo todo en
minúsculas.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Luego de ingresado todos los campos le damos Grabar,
Tabla “propiedades” con los campos correspondiente.
esto Creara
la
Como ven, para el id, utilice el tipo INT, que indica un valor numérico sin decimales, esto
me permitirá identificar cada Propiedad.
En los campos titulo, mtscuadrados, banos, habitaciones, utilice VARCHAR con un largo
de 255, esto permitirá números, letras o símbolos hasta un ancho máximo de 255, es un
poco mucho pero el Control del Largo lo haremos en las Cajas de Texto al ingresar cada
propiedad, ya que el VARCHAR, a pesar de tener largo 255 prevé ese máximo pero no lo
ocupa todo. Si adentro guardamos solo un titulo “casa en la playa”, gastara solo 16 bytes
o
caracteres.
Vean también que no escribí “baños” si no “banos” para no utilizar símbolos, ni tampoco
use
espacios.
Otra cosa es que si bien habitaciones contendrá un número, no utilice INT, si no
VARCHAR, yo uso como regla que si el número no se usa para búsquedas directas u
operaciones matemáticas le asignare de tipo VARCHAR.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
En precioventa y preciorenta utilice DOUBLE,
decimales.
que
permite
guardar
números
con
En tipoinmueble, use numérico INT para guardar en él, un 1 para casas en Venta, 2
para casas en Renta y un 3 si es ambos casos, o sea cada tipo de inmueble tendrá ese
código numérico que lo identifica.
En descripcion, utilice TEXT ya que es un texto amplio que puede ser de 10 o 100 o 500,
o más por tanto excede el máximo de un VARCHAR que son 255, y se aplica mejor un
campo TEXT, que es virtualmente ilimitado.
Por ultimo en fechaingreso, donde se guardara la fecha en que esa propiedad se ingresa
al sistema, utilice el tipo DATE, que permite guardar una fecha.
Crear el Índice para la Tabla Propiedades
Como dijimos, el id, será el Campo que Identifica la Propiedad, a estos campos usados
para identificar registros (registro = cada una de las propiedades), se le llama Índice. Un
índice, permite acelerar las búsquedas cuando hay muchos Registros, o sea muchas
Propiedades en la Tabla.
Si prestamos atención abajo dice, No se ha definido el índice!, bien, hagámoslo. Para esto
donde dice Crear un índice en 1columna(s), damos en el botón Continuar.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Y en la siguiente página, seleccionamos como campo, id, y verificamos que diga
como Tipo de Índice: PRIMARY ya que este será la forma principal de buscar, y por
ultimo damos click en Grabar.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Veremos entonces, que id, queda subrayado (I) indicando que es un Índice, también
abajo en la Lista de Índices (II) esta el PRIMARY por Campo id.
Ese número de propiedad, podríamos ingresarlo a mano, 1, 2, 3, etc. o también podemos
hacer que sea un número Automático que se AutoIncremente. Para esto, vamos a
dar click en el Icono Cambiar (el lápiz de la marca III en la imagen).
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Y en la siguiente página, como indica en la imagen, seleccionamos como parámetro
Extra, el auto_increment. Para que ese número aumente solo, de manera automática.
Por ultimo le damos click, al botón Grabar.
Y de esta forma tenemos lista nuestra primer Tabla, llamada propiedades, en nuestra
Base de Datos llamada inmobiliaria.
Crear la Tabla de Ciudades
Ahora de la misma forma, crearemos la tabla “ciudades”, de paso repasamos un poco lo
que realizamos con propiedades.
Damos un click en la Base de Datos inmobiliaria, que vemos a la izquierda en
la imágen (I).
Luego escribimos el Nombre de la Tabla a Crear, en este caso “ciudades” (imágen II), y
la cantidad de campos (imágen III), por ejemplo 10, y damos Continuar.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Esta tabla, como vemos en la imagen, tendrá solo 2 campos, que son id, de tipo INT y
el nombre de la ciudad de tipo VARCHAR, de 255 de largo. Presionamos luego, Grabar.
Nos mostrara, que No
damos Continuar.
se
ha
definido
índice!,
para
crear
el
índice
por id,
Indicamos que el índice será por id, de tipo PRIMARY y damos Grabar.
Seleccionamos cambiar (en el lapicito bajo Acción), para indicar nuevamente que id,
será un campo que AutoIncrementa, tal como hicimos en la tabla propiedades.
Y con esto tendríamos listas las 2 tablas necesarias para nuestra aplicación Web de Venta
de Inmuebles o Inmobiliarias.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Venta de Inmuebles - Parte 3, phpMyAdmin Ingreso y Edición
de Datos
Ahora veremos la forma en que podemos Ingresar, Modificar y Eliminar Registros en las
Tablas, utilizando el mismo phpMyAdmin, como Gestor de Base de Datos.
Más adelante podrán realizar su propio sistema de ingreso, modificación y eliminación
de Ciudades y Propiedades (usando código PHP), pero es importante conocer esta
herramienta ya que es de mucha ayuda para Webmasters y Desarrolladores Web.
En nuestro navegador Internet Explorer, o mejor aun FireFox, vamos a cargar la siguiente
dirección:
http://localhost
Vamos a seleccionar phpMyAdmin Database Manager, para ir a Gestor de Base de Datos,
donde veremos nuevamente esta imágen:
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
En la parte izquierda, donde dice Base de Datos, vamos a seleccionar la que se
llama inmobiliaria, y ahí veremos una pantalla similar a esta:
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Ahí podemos ver nuestras dos tablas, ciudades y propiedades, que son las que componen
nuestra Base de Datos Inmobiliaria.
Insertar Registros en una Tabla
Insertar Registros, significa agregar datos a la Tabla, en este caso lo haremos
en ciudades.
Para esto a la izquierda vamos a dar click, en ciudades
En la
parte derecha veremos
la
siguiente
imagen,
con
la Estructura
de
nuestra Tabla ciudades, la cual recordemos que tiene dos campos (I) id y nombre.
También podemos ver que nuestra Tabla, tiene cero filas o registros (II). Pero a nosotros
nos interesa la opción de Insertar Registros, que la realizamos presionando en el
link Insertar (III) en la parte superior.
Esta opción nos permite, agregar Registros en nuestra Tabla Actual, que es ciudades, ahí
veremos la siguiente imagen, donde podremos escribir 1 o 2 registros. No es necesario
llenar los 2, bastaría con ingresar una sola ciudad. Pero en este caso escribí “Madrid” y
“Montevideo” así llenamos 2 de 1 vez.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Vean que no ingrese el numero de id, ya que como recordamos, al crear la tabla, este fue
definido como un AutoNumerico, o sea que Incrementa Automático cada vez que
ingresamos algo. Bien, luego de ingresado vamos a presionar Continuar (I). Al presionar
Continuar (I), volveremos a la lista de datos de la Tabla, o quedara listo
para Insertar mas datos, esto depende del cuadro desplegable que dice “Volver” (I). Si
damos click en la lista desplegable de “Volver” veremos las opciones que indica la
imagen:
Las dos opciones, son: Volver, que regresa a la lista de registros e Insertar un nuevo
registro, que vuelve a esta página de Ingreso para seguir agregando más registros. De
esta forma podemos ingresar tantas ciudades como queremos.
Ver la Lista de Registros o Ver la Estructura de la Tabla
En la parte superior, veremos dos opciones que son Examinar o Estructura, como indica
la imagen:
Estructura, muestra como vimos hace unos momentos, los campos de la Tabla,
los Índices y el Numero de Filas ingresadas.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Examinar, mostrara la lista de registros ingresados, en nuestro caso, serán las ciudades,
como muestra la imagen:
Editando y Eliminando Registros
En la imagen anterior vemos como se muestran las ciudades ingresadas, cada una con el
nombre que le dimos, y verán también que fueron numeradas automáticamente en el id,
ya que como recordamos este es AutoNumerico.
Veamos también que en cada Registro, hay dos iconos, un lápiz y una cruz (I).
El lápiz, permite Modificar o Editar ese Registro, por ejemplo para cambiar a mayúsculas
de la primera letra de cada ciudad ;) que a propósito la deje en minúsculas para que
ahora ustedes prueben Editar una por una.
La cruz (I) permite Eliminar la ciudad que quieran, basta con dar un click en el icono X y
luego Confirmar.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
En algunos casos, puede ser necesario Editar o Eliminar, más de un Registro, para esto
tenemos los Cuadros de Selección (II), donde podrán elegir cuales Registros vamos
a Eliminar o Editar. Luego de seleccionados los 1, 3, 20 o 10 registros con un simple click,
para Editar o Eliminarlos, vamos a los iconos de la parte derecha (III), que nos permiten
justamente, Editar o Eliminar los Registros Seleccionados.
Si queremos Seleccionar todos los Registros damos click en “Marcar todos/as”.
Si queremos Deseleccionar todos los Registros damos click en “Desmarcar todos”
Insertar Nuevas Propiedades
Como estamos en la Tabla ciudades, debemos cambiarnos, para esto vamos a dar click a
la derecha en propiedades, donde indica la imagen.
Al dar click, veremos la Estructura de la Tabla propiedades, y tal como hicimos
con ciudades, daremos click en Insertar.
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
En Insertar, aparecerá la Ficha de Edición, donde Ingresaremos la Información, como
por ejemplo la de la imagen:
Ing. Tomás Urbina
Programación Web y Desarrollo Plataforma Web
Acá debemos tener en cuenta, que en idciudad, va el numero identificatorio de la
ciudad, en mi caso he puesto el 2, por tanto corresponde a Montevideo. Esto puede
sonar ilógico pero en la próxima parte cuando creemos nuestro propio formulario de
ingreso veremos como enlaza.
En tiponimueble veremos un 3 que significa que la casa esta tanto para venta como para
renta (recuerden que 1 es venta, y 2 es renta). Esto lo convenimos así para facilitar el
sistema.
Por ultimo la fecha debe ser escrita en ese formato año-mes-dia, cuatro dígitos del año,
guión, 2 dígitos del mes, guión 2 dígitos del día, o damos click en el incono calendario y
seleccionamos con otro click, la fecha correspondiente.
Terminamos el ingreso con el botón Continuar, recordando que podemos volver
a Ingresar otras propiedades cuando queramos, o Eliminar, Editar como explicamos en la
sección de ciudades anteriormente.
Ok, hasta este punto podemos ver terminado nuestra Base de Datos para una Venta de
Inmuebles, seguramente ustedes pueden mejorarla si a mi se me ha escapado algun
detalle.
Por favor hagan esta practica y lleven esta BD en sus maquinas virtuales pues mas
adelante cuando comencemos a trabajar con PHP la utilizaremos para hacer unos
ejercicios de conexión de PHP con MySQL.
Suerte y Bendiciones para tod@s.
Descargar