Ver Mensaje Individual
  #12 (permalink)  
Antiguo 21/02/2016, 21:45
italo_pm
 
Fecha de Ingreso: enero-2011
Mensajes: 24
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: crear campo con prefijo increment

hola, muchas gracias por tu respuesta, si entiendo tu ejemplo , pero creo q me falto ser mas detallado... si bien lo q me sugieres funciona solo cuando las tablas (actividad) tienen los mismos campos , pero en mi caso (me olvide de escribirlo), las tablas no tienen los mismos datos...

por ejemplo:
Código:
actividades:
id_actividade,descripcion,notas,periodo,prioridad,fecha,firma

batch_error
id_batch_error,nombre_batch,application,codigo_error,stepname,procstep,prioridad,fecha,hora,firma

oficina (esta tabla es solo un ejemplo)
id_oficina ,nombre_empleado,nombre_turnista,nombre_jefe_oficina
como se puede ver, son tablas que no tienen una relacion entre ellas, pero necesito generar un numero de ticket al momento de hacer un insert en cada una de ellas, ese numero de ticker se lo entregare al usuario para q sepa su numero etc etc etc etc...

siguiendo el ejemplo que compartiste:


Cita:
actividad
id, nombre, descripcion, id_tipo

y otra de tipos de actividad:

tipos
id_tipo descripcion

ahora para los tickets generarias una tabla como esta:

tickets
id_ticket, id_actividad
pues funciona solo si las tablas hubieran tenido nombre, descripcion, siempre (repito fue un error mio hacer un ejemplo como el post anterior)... pero ese no es mi caso, cada tabla tiene un contenido distinto...por eso pensaba hacer algo

Código SQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS tb_ticket (
  2.     id_ticket INT(8) NOT NULL AUTO_INCREMENT,
  3.     id_tabla1 INT(8) ,
  4.     id_tabla2 INT(8) ,
  5.     id_tabla3 INT(8) ,
  6.     id_tabla4 INT(8) ,
  7.     id_tabla5 INT(8) ,
  8.     id_tabla6 INT(8) ,    
  9.     PRIMARY KEY(id_ticket),
  10.     FOREIGN KEY (id_tabla1) REFERENCES tabla1(id_tabla1)
  11.     FOREIGN KEY (id_tabla2) REFERENCES tabla2(id_tabla2)
  12.     FOREIGN KEY (id_tabla3) REFERENCES tabla3(id_tabla3)
  13.     FOREIGN KEY (id_tabla4) REFERENCES tabla4(id_tabla4)
  14.     FOREIGN KEY (id_tabla5) REFERENCES tabla5(id_tabla5)
  15.     FOREIGN KEY (id_tabla6) REFERENCES tabla6(id_tabla6)
  16.     ) engine=InnoDB;

pero de esa manera tendre 5 campos vacios en cada insert e imagino q eso es un error...

y por eso pensaba en hacer algo tipo:

Código SQL:
Ver original
  1. CREATE TABLE `tb_tickets` (
  2.   `id_ticket` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `id_nombre_tabla` INT(11) NOT NULL,
  4.   `id_record` INT(11) NOT NULL,
  5.   PRIMARY KEY (`id_ticket`)
  6. ) ENGINE=InnoDB;

donde:

id_record seria el record osea el id_ de la tabla donde hago el insert...

id_nombre_tabla adaptando a tu ejemplo podria ser el id_tipo que especifica el nombre de la tabla pero vuelvo a lo mismo de como crear un foreing key de un campo rferenciado a distintos campas de distintas tablas.???

nose si es factible hacerlo , porque supuestamente el id_nombre_tabla soporta solo un foreing key y no mas de uno....

alguna sugerencia??

gracias por su ayuda...

saludos.

Última edición por italo_pm; 21/02/2016 a las 22:59