[Php-avanzado] normalizacion gestor de contenidos turisticos

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mar Dic 4 19:20:39 ART 2012


Hola Cesar,


El mar, 04-12-2012 a las 17:54 -0300, Cesar Gimenez Lascano escribió:
> Gracias Leo, ahí te envío las tablas de nuevo con las modificaciones
> que me marcaste y copio y pego debajo el SRS actualizado.

	guardo esta versión de la SRS para usarla como referencia.


> Queria preguntarte, no estoy seguro de que tipo darle a las imágenes.

	Esto dependerá de cómo las vayas a guardar.
	Si guardás los archivos en el disco, en la DB tenés que poner solo un
VARCHAR con el nombre del archivo.
	Esto implica que al editar o borrar el registro, tenés que ir a buscar
la imagen al disco y borrarla.

	Si las guardás en la DB, será un un BLOB, pero tenés que guardar además
el nombre y el tipo MIME, para poder reconstruirla. Guardar la imagen en
la DB es más complejo, pero te ahorra el manejar por separado la edición
y el borrado del registro.

> Tampoco que tipo darle al foursqure_id, tiene la siguiente forma:
> 4bb2ded114cfd13af88015ab

	Eso es un VARCHAR.


	Respecto de la normalización, decidí como vas a guardar las imágenes y
ya debería estar lista.


	Seguimos!


> OBJETIVO: mostrar sobre un mapa comercios, servicios e información
> turística de la ciudad. Se obtendrá más información sobre los lugares
> al hacer click sobre ellos (sección de información).
> 
> REQUERIMIENTOS FUNCIONALES:
> 
>      1. El sistema debe mostrar tipos de publicación.
>      2. El sistema debe mostrar rubros de comercios.
>      3. El sistema debe gestionar comercios con su tipo de publicación
>         [1] y su rubro de comercio [2].
>      4. El sistema debe gestionar eventos.
>      5. El sistema debe gestionar puntos de interés turísticos.
>      6. El sistema debe mostrar categorías de alojamientos.
>      7. El sistema debe gestionar alojamientos con su categoría de
>         alojamientos [6] y su tipo de publicación [1].
>      8. El sistema debe gestionar bares con su tipo de publicación
>         [1].
>      9. El sistema debe mostrar especialidades.
>     10. El sistema debe gestionar restaurantes con su especialidad [9]
>         y su tipo de publicación [1].
>     11. El sistema debe mostrar los comercios, bares, restaurantes,
>         alojamientos, eventos y puntos de interés turístico sobre un
>         mapa de la ciudad.
> 11.1 El sistema debe filtrar por “solo comercios”, “solo bares”, “solo
> restaurantes”,       “sólo alojamientos”, “solo eventos” y “solo
> puntos de interés turísticos”.
>      1. El sistema debe mostrar los comentarios de foursquare escritos
>         sobre los comercios, bares, restaurantes y alojamientos en su
>         sección de información.
>      2. El sistema debe mostrar las fotos de foursquare de los
>         comercios, bares, restaurantes y alojamientos en su sección de
>         información.
>      3. El sistema debe compartir el nombre, dirección y teléfono de
>         los comercios, bares, restaurantes y alojamientos en las redes
>         sociales twitter y facebook de quien utilice el sistema.
>      4. El sistema debe compartir la descripción, fecha, hora y
>         dirección de los eventos en las redes sociales twitter y
>         facebook de quien utilice el sistema.
>      5. El sistema debe compartir la descripción y dirección de los
>         puntos de interés turístico en las redes sociales twitter y
>         facebook de quien utilice el sistema.
>      6. El sistema debe mostrar los últimos tweets de los perfiles de
>         los bares, restaurantes, comercios y alojamientos en su
>         sección de información.
> 
> 
> 
> DICCIONARIO:
> 
>       * Alojamiento: nombre, dirección, teléfono, latitud, longitud,
>         categoría de alojamiento, logo, tipo de publicación,
>         twitter_id, foursquere_id.
>       * Comercio: nombre, dirección, teléfono, latitud, longitud,
>         logo, tipo de publicación, rubro de comercio, twitter_id,
>         foursquere_id.
>       * Eventos: nombre, fecha_hora, dirección, descripción, latitud,
>         longitud, imagen.
>       * Puntos de interés turístico: nombre, dirección, descripción,
>         latitud, longitud, imagen.
>       * Bar: nombre, dirección, teléfono, latitud, longitud, logo,
>         tipo de publicación, twitter_id, foursquere_id.
>       * Restaurante: nombre, dirección, teléfono, latitud, longitud,
>         especialidad, logo, tipo de publicación, twitter_id,
>         foursquere_id.
>       * Categorías alojamientos: 1 estrella, 2 estrellas, 3 estrellas,
>         4 estrellas, 5 estrellas, apart hotel, hostel.
>       * tipo de publicación: plata, oro.
>       * especialidades: parrilla, pastas, pizzas, tenedor libre,
>         comidas rápidas, picadas, pescados y mariscos, otras.
>       * rubro de comercio: electrónica, indumentaria, supermercado,
>         zapatería, belleza, otras.
> 
> REQUERIMIENTOS NO FUNCIONALES:
> 
>      1. El sistema debe ser web.
>      2. El sistema debe ser compatible con dispositivos móviles.
>      3. El sistema debe manejar usuarios.
>      4. El sistema debe utilizar la API de twitter.
>      5. El sistema debe utilizar la API de foursquare.
>      6. El sistema debe usar herramientas de código libre.
> 
> 
> El 3 de diciembre de 2012 23:56, Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar> escribió:
>         Hola Cesar,
>         
>         
>         El lun, 03-12-2012 a las 18:44 -0300, Cesar Gimenez Lascano
>         escribió:
>         > Hola Leo! t envío las tablas para que las revises,
>         haciéndolas me di
>         > cuenta que me había olvidado de agregar el campo nombre en
>         varios
>         > lados en el diccionario. Gracias!!!!!
>         
>         
>                 Por favor, tomate 5 minutos y agregá en el diccionario
>         de la SRS los
>         nombres que viste que te faltaron.
>                 La idea de una SRS es usarla al final del trabajo para
>         ver si el
>         software responde a las características especificadas, y
>         desentonaría
>         que el software tenga una cosa que parece que no está pedida.
>                 Esto de actualizar la SRS es de lo más normal: se
>         suele decir que la
>         SRS es un "documento vivo" que se va actualizando cada vez que
>         hace
>         falta.
>                 Por favor, copiá y pegá la nueva SRS en el cuerpo del
>         mail, así nos
>         queda más a mano.
>         
>                 Respecto a la normalización, la copio y pego abajo
>         para comentarla:
>         
>                 Como primer cosa, voy a necesitar el tipo de los
>         campos para validarla.
>         No es que los nombres estén mal, sino que no puedo distinguir
>         si por
>         ejemplo "catAlojamientos" es un integer, con lo que sería una
>         referencia
>         a un ID de la tabla catAlojamientos, o un varchar, con lo que
>         estaría
>         mal normalizado.
>         
>                 Otra observación general para varias de las tablas:
>         los nombres de los
>         campos van en singular. La NF1 dice que tiene que haber solo
>         un dato por
>         campo, y poner un nombre en plural se presta al malentendido
>         semántico
>         de que ahí estás guardando más de una cosa.
>         
>                 Teniendo MySQL un tipo de campo fecha_hora (datetime),
>         en la tabla
>         Eventos no deberías tener separada la fecha de la hora.
>         
>                 La tabla "Puntos" no está mal, pero ponele un nombre
>         más descriptivo
>         como PuntosInteres... un día querés que los visitantes pongan
>         puntaje a
>         las cosas y te llevás una sorpresa. Cuanto más descriptivo (y
>         corto) el
>         nombre, mejor.
>         
>                 La tabla Restaurantes tiene un campo llamado
>         "espacialidades". O es un
>         fingertip o tienen cosas del espacio ;-)
>         
>         
>         
>         
>         Alojamientos
>         ------------
>         id
>         nombre
>         direccion
>         telefono
>         latitud
>         longitud
>         catAlojamientos
>         logo
>         tiposPublicacion
>         twitter_id
>         foursquare_id
>         
>         Comercios
>         ---------
>         id
>         nombre
>         direccion
>         telefono
>         latitud
>         longitud
>         rubrosComercio
>         logo
>         tiposPublicacion
>         twitter_id
>         foursquare_id
>         
>         Bares
>         ------
>         id
>         nombre
>         direccion
>         telefono
>         latitud
>         longitud
>         logo
>         tipoPublicacion
>         twitter_id
>         foursquare_id
>         
>         Restaurantes
>         ------------
>         id
>         nombre
>         direccion
>         telefono
>         latitud
>         longitud
>         espacialidades
>         logo
>         tipoPublicacion
>         twitter_id
>         foursquare_id
>         
>         Eventos
>         -------
>         id
>         nombre
>         fecha
>         hora
>         direccion
>         descripcion
>         latitud
>         longitud
>         imagen
>         
>         Puntos
>         ------
>         id
>         nombre
>         direccion
>         descripcion
>         latitud
>         longitud
>         imagen
>         
>         
>         catAlojamientos
>         ---------------
>         id
>         descripcion
>         
>         
>         rubrosComercio
>         --------------
>         id
>         descripcion
>         
>         tiposPublicacion
>         ----------------
>         id
>         descripcion
>         
>         especialidades
>         --------------
>         id
>         descripcion
>         
>         
>                 Eso es todo!
>         
>         
>         
>         --
>         Leonardo Tadei
>         leonardot en pegasusnet.com.ar
>         Web: http://leonardo.tadei.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
> 
> 
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado

-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.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