Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/12/2012, 02:27
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: Claves Foraneas

Hola vrad40. Sería importante saber con qué base de datos estás trabajando, y qué motor utiliza ya que no todas soportan las mismas opciones.

Por ejemplo con MySQL y InnoDB, sino me equivoco, puedes decirle a las tablas relacionadas "hija" que si se borra la categoría padre se borren los datos relacionados. Seguro que te suena lo de "ON DELETE CASCADE". Así que con que hagas un DELETE de la categoría se borrarían automáticamente los cursos asociados a esta categoría.

Supongo que es lo que te interesa. Creo que se hace a la hora de crear la tabla pero no estoy seguro del todo, ya que yo lo hago desde MySQL Workbench y él hace el trabajo por mi. Ahora me doy cuenta de que no es bueno depender de estos gestores. En fin, que me salgo del tema.

Que algunas bases de datos soportan estas cosas y otras no, es importante que digas cual estás utilizando.

En cuanto a lo que comentas más que un problema de base de datos creo que es un problema que depende de cómo tú o el cliente quiera que se comporte. ¿Es posible que un curso no tenga ninguna categoría? ¿Cuando añades un curso obligas a que esté dentro de una categoría? ¿Cuando borras una categoría es porque los cursos que tiene ya no existen o no se van a realizar más?

Por defecto yo creo que la idea es que no se borre nada y que quede constancia de que estuvo ahí, sin saber muy bien en qué consiste la base de datos. Tal vez lo ideal sea un campo en el que digas si el curso o la categoría de cursos está en activo o no.

Al final todo depende de tí y como quieras que se comporte.

Un saludo