Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2014, 08:04
bibliotecario_oscuro
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 9 meses
Puntos: 0
Información duda con relacion recursiva

Buenos dias compañeros. He estado mirando algunos ejemplos de relaciones recursivas pero estoy confundido en la forma en que estas deben de plantearse en las tablas, por ejemplo:

tengo una tabla llamada persona con estos campos:

Código MySQL:
Ver original
  1. CREATE TABLE persona (
  2. nombre VARCHAR(80) NOT NULL,
  3. edad INT NOT NULL,
  4. PRIMARY KEY(id_persona)
  5. );

y quiero hacer una relacion amigo con esta entidad, entonses, la relacion quedaria asi: "una persona puede ser amigo de una o varias personas" entonses ¿como planteo esta relacion recursiva en la tabla?. Segun entendi yo tendria que agregar a esta tabla otro campo y que este fuera clave foranea de la clave primaria de esta tabla, entonses podria quedar asi:

Código MySQL:
Ver original
  1. CREATE TABLE persona (
  2. nombre VARCHAR(80) NOT NULL,
  3. edad INT NOT NULL,
  4. id_persona INT NOT NULL,
  5. PRIMARY KEY(id_persona)
  6. FOREIGN KEY (id_persona)
  7. REFERENCES persona(id_persona)
  8. );

pero segun yo, esto no funciona ya que, en una misma tabla no puede haber mas de 2 campos con el mismo nombre, por lo tanto tendria que cambiar el nombre del campo que utilizo como clave foranea. Esto es lo que me causa confución, ademas de que, segun se, si quiero colocar una clave foranea en la tabla2, esta debe de tener el mismo nombre y ser del mismo tipo que el campo que se utiliza como clave primaria en la tabla1.

¿podrian ayudarme?
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"