Un poquito mas sobre diseño de sistemas.

kraneok

Hola gente, hoy vengo con algunas preguntillas.

Resulta que con el tiempo, y con los proyectos que estoy realizando, estoy viendo que casi que es mejor no añadir restricciones a nivel de tupla en las tablas y pasar de utilizar, en el caso de MySQL, MyISAM en vez de InnoDB.

Supongamos que tenemos una base de datos con categorías y artículos, donde articulos N 1 categorías. Como sabemos, la tabla artículo debe contener un campo donde se introduzca la referencia a una categoría, en el caso de utilizar InnoDB esto debería ser si y solo si existe dicha categoría en la otra tabla, si no, tiraría error, en caso de MyISAM, ni se preocupa de ello.

Creéis que es mejor no añadir restricciones a nivel de tupla en las bases de datos y ser la logíca de la aplicación la que deje total libertad al programador a la hora de decidir que hacer con registros que estén relacionados?

Ni que decir tiene, que en este caso, su una categoría fuese eliminada de la base de datos, y esta, la utilizace un artículo, el artículo se quedaría huerfano de categoría.

Un saludo.

ninjachu

#1 Yo soy de los que opino que una base de datos bien construida evita muchos problemas a posterior.
En el 99% de los casos se deberían establecer correctamente todas las integridades referenciales e intentar utilizar como mínimo la 3ª forma normal.

3
wineMan

-

2 respuestas
kraneok

Muchas gracias a los dos, aunque diferís, se que es por que cada uno se refiere a un contexto.
De todos modos #3, me gustaría, y si conoces, donde se puede leer sobre el tema.
Un saludo.

smintcs

Yo lo veo un poco mas por donde va #3, cuanto mas desacoplado este todo mejor, si es la propia aplicación la que se encarga de eso podrás cambiar la base de datos en cualquier momento tocando lo mínimo, en cambio si un día te pasas a no-sql o a lo que sea vas a tener que toquetear de mas sitios para añadir las funcionalidades que te hacia el motor

Es como los ciclos de desarrollo y demás, habrá proyectos que no sabes por donde van a salir y lo harás de una manera, y otros que están tan claros que vas a tiro hecho sin salirte de un guion.

Usuarios habituales

  • smintcs
  • kraneok
  • wineMan
  • ninjachu