Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

HOW TO: Crear campo restringido para ciertos valores / Foreign key tipo texto

Estas en el tema de HOW TO: Crear campo restringido para ciertos valores / Foreign key tipo texto en el foro de Mysql en Foros del Web. Este How to lo escribo ante la cantidad de posts que leo que dicen: en mysql no se pueden poner campos con ciertos valores determinados, ...
  #1 (permalink)  
Antiguo 09/12/2007, 12:45
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 10 meses
Puntos: 0
HOW TO: Crear campo restringido para ciertos valores / Foreign key tipo texto

Este How to lo escribo ante la cantidad de posts que leo que dicen: en mysql no se pueden poner campos con ciertos valores determinados, lo unico que puedes hacer es comprobarlo con php cuando lo insertas. Y tambien para los que dicen que no se puede indexar cadenas de texto.
Me encantaria borrar todos esos posts, que hacen que muchos pensemos que realmente es imposible.
Y no, que esas personas no sepan, no significa que no se pueda.
HOW TO
Siguiendo con lo dije antes, este es un metodo. Desconozco si hay otro. Este funciona y está bien diseñado.
Primero debemos tener activado el soporte para innodb. Si teneis instaqlado el mysql con algun "envoltorio" tipo xampp, appserv..., buscad en google como activarlo, porque si que se puede (tambien hay posts que dicen que solo se se puede instalandolo por separado...).
Lo siguiente es crear la tabla con el motor de almacenamiento innoDB (seguramente las creeis con MyISAM).
Ahora, en el campo que querais que tenga unos valores determinados (por ejemplo, campo deporte y quereis que solo haya futbol, baloncesto y tenis), lo poneis como varchar y le poneis una longitud (con 10 suele ser suficiente). Y lo importante: lo poneis como indice.
Ahora creais otra tabla. Creais el tipico campo de clave primaria, y a parte, el campo tipo varchar con la misma longitud que el que habeis puesto antes. Y tambien lo poneis como indice. Hecho esto, simplemente tenemos que indicar la conexion. En la tabla del principio, indicais que os relacione el campo donde van los valores determinados al campo con los valores determinados que está en la otra tabla. Poner DELETE NO ACTION UPDATE NO ACTION para que no se pueda modificar la tabla con los valores modificados a menos que no haya nadie que tenga el deporte ese seleccionado.

Si esto lo haceis con phpmyadmin, os va a resultar mucho mas sencillo que con comandos sql. Si estais acostumbrados a los comandos sql, pues no creo que tengais problemas.
Por ultimo señalar que este how/to es para alguien que ya haya tratado con mysql. No está explicado para principiantes. Yo no tengo tiempo para hacerlo detallado y con graficos, asi que si alguien quiere hacerlo, adelante. Yo simplemente queria desmitificar eso de que no se puede campos con valores tipo select en html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:34.