alvaro-prieto
4/26/2017 - 1:53 PM

Reglas generales de una tabla, crear tabla, create table, base de datos

Reglas generales de una tabla

Cuando se crea una tabla, si es vieja que siga la regla webex_categorias, si es nueva webexCategorias.

  • encoding: Utf8
  • collation: utf8_spanish_ci
  • type: InnoDB

  • Siempre tiene un ID como key, autoincremental

  • Siempre que haya un ID, interno o foráneo, hay que agregar un índice asociado con el mismo nombre. Esto es muy sencillo, únicamente hay que crear un index con el mismo nombre de la columna, nada más.

  • Los índices sirven para acelerar las búsquedas cuando se hace una query. Normalmente, también se pueden agregar indices para campos por los que se filtra algo (aunque no sean claves foráneas), sobre todo si son búsquedas costosas y grandes. No obstante, la regla general es crear índices para las claves foráneas

  • Cuando creas un campo decimal en base de datos, se le pone type = "DECIMAL", y para establecer cuantos decimales, en length, se le pone 10,2 si queremos 2 decimales, 10,3 si queremos 3, etc...

  • En la definición de la tabla, en el campo comment, hay que agregar una defición en json del tipo:

    • {"rotulo":"URL Desarrollo" ,"tipo":"url"} (más info buscando "Comment" en GistBox>MySQL
    • Si es un identificador foráneo, hay que decirle a donde va {"rotulo":"Aplicación","campo":"nombre","tabla":"SoporteAplicaciones", "clase":"SoporteAplicaciones"}
    • (normalmente la clase y la tabla coinciden, salvo en proyectos viejos)

Más información sobre el campo comment

+info en: http://wiki.quid.es/wikidesarrollo/index.php/Framework:Estructura_de_datos

{"rotulo":"URL Desarrollo" ,"tipo":"url"}

Los tipos, son los editores disponibles, algunos de los más básicos son:

  • "texto"
  • "email"
  • "textolargo"
  • "check"
  • "archivos"
  • "url"
  • "fecha"
  • "numero"
  • "rango" ...

//Ejemplo de un comment avanzado. En params van los campos del editor en cuestion

{"rotulo":"Calor", "ayuda":"Temperatura de la petición", "tipo":"rango", "parametros":{"minimo":"0","maximo":"1", "salto":"0.01", "leyenda":["preciso","creativo"]}}

Pero si tenemos tipos/editores personalizados, podemos usarlos, por ejemplo "fecha2"

//El siguiente es de una columna de tipo idForaneo:

{"rotulo":"Título Campo","clase":"Centros","tabla":"centros","campo":"nombre"}   

//Creo que normalmente clase y tabla coinciden, salvo en proyectos viejos

//ejemplos de correcciones y validaciones

{
  "rotulo":"Precio con IVA",
  "ayuda":"Introduce un precio antes de aplicar impuestos",
  "correcion":"\\.|||,",  //Sustituye los campos por comas. (Ver que hay doble barra en la primera parte de la expresión donde debería hacer falta una.)
  "validacion":"$(\\.|[0-9])*^"    //Valida si todo son numeros o puntos.
 
//si quieres concatenar varios campos, (en este caso nombre y apellidos)
}

{"rotulo":"Usuario","clase":"Usuario","tabla":"usuarios","campo":"concat(nombre, ' ', apellidos)"}

//params parametros BD para atributos de controles //lo importante aquói es el campo adicional "parametros" {"rotulo":"Ancho en portada","tipo":"numero","parametros":{"sufijo":"%","decimales":"3"}}

// Enumeraciones Enum Enums // Se crea el campo de tipo Enum, y en longitud las opciones separadas // por coma: 'Rápido','Amable','Eficaz' // También se puede poner un valor por defecto, simplemente copiando el valor: // Rápido (Sin comillas)