elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)  (Leído 23,030 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #10 en: 7 Diciembre 2009, 17:00 pm »

Ese dibujo es como el mio, ese dibujo es como el mío! ;-) .. bueno .. casi XD, la diferencia esta en que relacionas MENSAJES con AMISTAD, y yo lo había sacado de PERSONA, lo que si proponia eran esas tablas tal cual :P

Y si, no es que los MER no gusten, pero en parte es una de las cosas más complicadas a la hora de crear una BBDD, el analizar la realidad, identificar las entidades y sus relaciones, no por algo hay personas que estan especificamente pa' ESO :P

Saludos


« Última modificación: 7 Diciembre 2009, 17:21 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #11 en: 7 Diciembre 2009, 17:02 pm »

Citar
Que NO es lo mismo que la estructura de las tablas en sql como se suele confundir

Se que no es lo mismo, pero a mi particularmente me queda mas sencillo y facil hacer el estructurado de las tablas sin nisiquiera pasar por el diagrama entidad relacion inicial... (Y reconozco que el diagrama es muchisimo mas simple de realizar que la otra manera).

Nunca he sido partidaria de los diagramas ni de base de datos, ni en programacion (diagrama de flujo) aveces me colocaban tarea en vivo en un aula en programacion en algun lenguaje y me decian hazlo ahora mismo... y ufff tiraba el codigo en unos pocos minutos y funcionaba y todo al compilarse, pero cuando el profesor me decia ok, y el diagrama de flujo de eso que acabas de hacer donde esta si eso debio ser lo primero que debiste hacer? y me quedo como plop  :-\  ahhhh no se. Y me han dicho hazme el diagrama ahora, y lol me pasan 2 horas y me vez con una hoja vacia pensando por donde comenzar a dibujar el dichoso diagrama  :xD

Sera cuestion de adaptacion, yo me lio con diagramas pero si me piden estructurado me manejo mas rapido. Pero a la larga creo no estoy segura, pero creo que si, que lo que el usuario que inicio el post buscaba era el diagrama no el estructurado de las tablas.


En línea

MazarD
Colaborador
***
Desconectado Desconectado

Mensajes: 885


mazard.info


Ver Perfil WWW
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #12 en: 7 Diciembre 2009, 17:15 pm »

Ese dibujo es como el mio, ese dibujo es como el mío! ;-) .. bueno .. casi XD, la diferencia esta en que relacionas MENSAJES con AMISTAD, y yo lo había sacado de PERSONA, lo que si proponia eran esas tablas tal cual :P

Y si, no es que los MER no gusten, pero en parte es una de las cosas más complicadas a la hora de crear una BBDD, el analizar la realidad, identificar las entidades y sus relaciones, no por algo hay personas que estan espacificamente pa' ESO :P

Saludos

:laugh: :laugh: Lo dejamos en un empate hasta que se demuestre lo contrario xD, porque con el enunciado ese vete a saber :laugh: :laugh:
Esque claro si fallas en el diagrama ya el error va a ser de diseño y siempre es más complicado de corregir

Citar
Sera cuestion de adaptacion, yo me lio con diagramas pero si me piden estructurado me manejo mas rapido. Pero a la larga creo no estoy segura, pero creo que si, que lo que el usuario que inicio el post buscaba era el diagrama no el estructurado de las tablas.
Yo también era de empezar a picar código cuanto antes mejor pero en mi último trabajo me lo exigian y creo que cuando le pillas la costumbre merece la pena por lo claro que te queda el concepto de un solo vistazo, además si te piden una mejora en un futuro ves más claro el impacto que tendrá en la aplicación y ya por último los imprevistos que te ahorras porque ya tienes "todo planeado" antes de empezar a picar una sola tecla.
Aunque claro, todo es discutible y hay quien considera que es hacer el trabajo dos veces xDD

Saludos!

« Última modificación: 7 Diciembre 2009, 17:18 pm por MazarD » En línea

-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
irc://irc.freenode.org/elhacker.net
ma__tt

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #13 en: 25 Diciembre 2009, 00:41 am »

Bueno leyendo este hilo me ha surgido una duda:

Si queremos tener un portal tipo tuenti, es decir, que por cada usuario registrado pueda tener una lista de amigos (se van añadiendo sobre la marcha), como lo hariais con tablas?

gracias  :-*
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #14 en: 25 Diciembre 2009, 18:36 pm »

Se que hay una mejor manera de estructurado  :xD y no culpo al que quiera jalarme las orejas por ello... pero esto es un mero ejemplo  ;)

Código
  1.  
  2. mysql> SELECT * FROM relacion;
  3. +------+--------+-----------+
  4. | id   | codigo | nombre    |
  5. +------+--------+-----------+
  6. |    1 |      2 | Winder    |
  7. |    1 |      3 | Napk      |
  8. |    2 |      4 | Randomize |
  9. |    3 |      1 | ^Tifa^    |
  10. |    6 |      1 | ^Tifa^    |
  11. |    6 |      2 | Winder    |
  12. |    6 |      3 | Napk      |
  13. +------+--------+-----------+
  14. 7 ROWS IN SET (0.00 sec)      
  15.  
  16. mysql> SELECT * FROM usuarios;
  17. +------+------------+----------------------------------+
  18. | id   | nombre     | contrasena                       |
  19. +------+------------+----------------------------------+
  20. |    1 | ^Tifa^     | 202cb962ac59075b964b07152d234b70 |
  21. |    2 | Winder     | 81dc9bdb52d04dc20036dbd8313ed055 |
  22. |    3 | Napk       | 81dc9bdb52d04dc20036dbd8313ed055 |
  23. |    4 | Randomize  | 698d51a19d8a121ce581499d7b701668 |
  24. |    5 | Festor     | 81dc9bdb52d04dc20036dbd8313ed055 |
  25. |    6 | seba123neo | 81dc9bdb52d04dc20036dbd8313ed055 |
  26. |    7 | Tux        | c20ad4d76fe97759aa27a0c99bff6710 |
  27. +------+------------+----------------------------------+
  28. 7 ROWS IN SET (0.00 sec)                          
  29.  
  30. mysql> SELECT a.nombre AS usuario,b.nombre AS relacion FROM usuarios a INNER JOIN relacion b USING(id) WHERE b.id = 6;
  31. +------------+----------+
  32. | usuario    | relacion |
  33. +------------+----------+
  34. | seba123neo | ^Tifa^   |
  35. | seba123neo | Winder   |
  36. | seba123neo | Napk     |
  37. +------------+----------+
  38. 3 ROWS IN SET (0.00 sec)
  39.  
  40. mysql> SELECT a.nombre AS usuario,b.nombre AS relacion FROM usuarios a INNER JOIN relacion b USING(id) WHERE b.id = 1;
  41. +---------+----------+
  42. | usuario | relacion |
  43. +---------+----------+
  44. | ^Tifa^  | Winder   |
  45. | ^Tifa^  | Napk     |
  46. +---------+----------+
  47. 2 ROWS IN SET (0.00 sec)
  48.  
  49.  
En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #15 en: 1 Enero 2010, 21:40 pm »

el n-n se resuelve asi:

usuario --< amistad >-- amigos

y suponiendo que solo se pueden enviar mensajes entre amigos:

amistad --< mensajes


Exacto, en teoría así podría ser.

Tifa, está súper bien tus explicaciones, aunque por el motor que estáis usando no tienes las relaciones creadas, me imagino que es myisam. No tengo la total seguridad pero para este tipo de casos creo es mejor usar innodb, no?
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #16 en: 2 Enero 2010, 04:47 am »

Si estan las relaciones creadas  ;)  basadas en el modelo tradicional Entidad-Relacion. Recuerda que antes no existian motores de almacenamientos transaccionales (Me refiero cuando nacio Oracle alla por los inicios del ochenta) no existia una implementacion que manejase de forma automatica una relacion entre 2 o mas tablas, entonces utilizan este modelo que viste en mi ejemplo, y que mencionan con constancia otros usuarios que han respondido a este post, y el modelo continua hoy dia siendo bastante efectivo  :D y todavia se utiliza.

Cuando nacio InnoDB como motor de almacenamiento transaccional, este utiliza ese mismo modelo que has venido observando, la diferencia es... que este motor continue funcionalidades y mejoras internas que no posees si utilizas el modelo de relacion tradicional. Entre estas funcionalidades de InnoDB esta que no permite violacion de llaves foraneas, lockeo de filas en vez de toda la tabla, uso de indices clustered, entre otras cositas, que tu sabes que en el tipo de relacion tradicional no es aplicable entonces lo que se suele hacer es crear triggers para manejar este tipo de cosas que InnoDB internamente ya porta (el trigger es para evitar que se viole la llave foranea de la tabla padre) obviamente implica mas esfuerzo y mas cosas que realizar y que InnoDB implementa de forma automatica. Pero, por otro lado todo dependera de que te conviene por optimizacion sobretodo, y aun no me han dado Base de Datos en la Universidad pero estoy consciente que el modelo que exhigen es el modelo tradicional, no el moderno con InnoDB que hace todo por ti y el estudiante no se entera realmente porque eso funciona asi, como y debido a que.

En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #17 en: 2 Enero 2010, 06:12 am »

es que el modelo tradicional que muestras en realidad es un modelo aplicado a la base de datos en un motor no transaccional, lo que vendría siendo un modelo físico y no coneptual, que sería la abstracción de tu ejemplo
En línea

Ojo por ojo, y el mundo acabará ciego.
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #18 en: 2 Enero 2010, 08:02 am »

es que el modelo tradicional que muestras en realidad es un modelo aplicado a la base de datos en un motor no transaccional, lo que vendría siendo un modelo físico y no coneptual, que sería la abstracción de tu ejemplo


Exactooooo mi querido tomás, es que tifa no tiene como tal las relaciones... hasta donde sé se crean en el schema, no?, aún así gracias por tu explicación.
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Envio de mensajes entre usuarios o amigos (Modelo Entidad-Relacion)
« Respuesta #19 en: 2 Enero 2010, 18:05 pm »

SI existe relacion entre el ejemplo que coloque, fijate bien en el campo ID de ambas tablas y el resultado que este retorna en base a una consulta.

O lo desgloso para que sea mas entendible:

Código
  1. mysql> SELECT * FROM usuarios;
  2. +------+------------+----------------------------------+
  3. | id   | nombre     | contraseña                       |
  4. +------+------------+----------------------------------+
  5. |    1 | ^Tifa^     | 202cb962ac59075b964b07152d234b70 |
  6. |    2 | Winder     | 81dc9bdb52d04dc20036dbd8313ed055 |
  7.  

Tomare de ejemplo yo y Winder.

ID ^Tifa^ = 1
ID Winder = 2

Ahora fijate la tabla relacion, que usuarios son amigos de ^Tifa^? los siguientes:

Código
  1. mysql> SELECT a.nombre AS usuario,b.nombre AS relacion FROM usuarios a INNER JOIN relacion b USING(id) WHERE b.id = 1;
  2. +---------+----------+
  3. | usuario | relacion |
  4. +---------+----------+
  5. | ^Tifa^  | Winder   |
  6. | ^Tifa^  | Napk     |
  7.  
  8.  

Segun la consulta dice que Winder y Napk ambos son amigos de ^Tifa^ ahora se confirma, en la tabla relacion correspondiente al ID = 1 que es ^Tifa^ que usuarios son amigos?

Código
  1.  
  2. mysql> SELECT * FROM relacion;
  3. +------+--------+-----------+
  4. | id   | codigo | nombre    |
  5. +------+--------+-----------+
  6. |    1 |      2 | Winder    |
  7. |    1 |      3 | Napk      |
  8.  
  9.  

ID = 1 (Que es ^Tifa^) tiene dos amigos con nombre Winder y Napk

Pero posiblemente para que sea mas entendible, andas solicitando el modelo Entidad-Relacion:

Usuario -> ID -> Relacion

Esa es la relacion de estas 2 tablas.

Habran ocasiones que tendras que utilizar este tipo de modelado, por ejemplo un formulario WEB donde el usuario pueda elegir una o varias categorias de loquesea, digamos gustos particulares (Donde el usuario debe elegir que le gusta la informatica, la PC, la tecnologia, los procesadores, etc)... entonces vas a necesitar 2 indices en vez de 1 y uno de esos 2 tendra que repetirse para poder relacionar 1 usuario con varias categorias que este usuario eliga en su formulario...

Ahora preguntate como en InnoDB que es un motor transaccional, tu puedes implementar el tipo de relacion anterior y expuesto en mi ejemplo con tan solo usando 1 indice por tabla. Si vas a responderme diciendome que puedes usar un campo ENUM no es valido, ya que si tu tienes 10 categorias y en un futuro tienes que agregarle mas... que vas a hacer? tener una tabla del tamanio de un libro por el mero hecho de no disenarla desde un inicio con 2 indices en vez de 1?
« Última modificación: 2 Enero 2010, 18:13 pm por ^TiFa^ » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con modelo entidad relación
Programación General
marcelosolera 0 2,254 Último mensaje 17 Junio 2012, 19:53 pm
por marcelosolera
Requiero de cualquier Modelo Entidad-Relacion
Bases de Datos
Hadess_inf 0 2,389 Último mensaje 6 Enero 2014, 18:31 pm
por Hadess_inf
MySQL WorkBench Modelo Entidad-Relacion
Bases de Datos
Winterz 0 2,421 Último mensaje 16 Julio 2014, 17:48 pm
por Winterz
Duda en la conversión de Modelo Entidad Relación a Modelo Relacional
Bases de Datos
theluigy13etv 1 4,379 Último mensaje 22 Mayo 2015, 19:33 pm
por ZeroVzla
BASE DE DATOS (Modelo Entidad Relacion)
Bases de Datos
NaxoHR 3 6,177 Último mensaje 29 Diciembre 2016, 13:51 pm
por crisoof
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines