Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:sicoferpscriptsdb:process:standardandpref

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
ada:howto:sicoferp:factory:sicoferpscriptsdb:process:standardandpref [2020/12/03 13:44]
200.116.180.41 [Foráneas]
ada:howto:sicoferp:factory:sicoferpscriptsdb:process:standardandpref [2020/12/03 14:07] (actual)
200.116.180.41 [ScriptsDB - Proceso: Estándares y Prefijos]
Línea 1: Línea 1:
 ====== ScriptsDB - Proceso: Estándares y Prefijos ====== ====== ScriptsDB - Proceso: Estándares y Prefijos ======
-Esta sección presenta a continuación las normas de denominación de variables y objetos estándar declaradas dentro de las bases de datos relacionales (Oracle PLSQL) de la Compañía. El estándar ha sido generado teniendo presente el estándar Oracle el cual puede ser consultados ​desde [[https://​oracle-base.com/​articles/​misc/​naming-conventions|Nombres y convenciones Oracle]]+Esta sección presenta a continuación las normas de denominación de variables y objetos estándar declaradas dentro de las bases de datos relacionales (Oracle PLSQL) de la Compañía. El estándar ha sido generado teniendo presente el estándar Oracle el cual puede ser consultado ​desde [[https://​oracle-base.com/​articles/​misc/​naming-conventions|Nombres y convenciones Oracle]]
  
 ===== Notas de Versión ===== ===== Notas de Versión =====
Línea 102: Línea 102:
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesta por el alias de la tabla.   * Puede estar compuesta por el alias de la tabla.
-  * Cuando la llave única ​esta compuesta por un solo campo, debe empezar por UK_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave unica en la tabla empezando por 01, 02, 03, 04...NM EJ: UK_TERCERO01. +  * Cuando la llave única ​está compuesta por un solo campo, debe empezar por UK_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave única ​en la tabla empezando por 01, 02, 03, 04...NM EJ: UK_TERCERO01. 
-  * Cuando la llave única ​esta compuesta por varios campos, debe empezar por UKC_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave unica en la tabla empezando por 01, 02, 03, 04...NM EJ: UKC_TERCERO01.+  * Cuando la llave única ​está compuesta por varios campos, debe empezar por UKC_[nombre de la tabla][identificador]. El identificador será el número de referencia que corresponde a la siguiente llave única ​en la tabla empezando por 01, 02, 03, 04...NM EJ: UKC_TERCERO01.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
-==== Indices ​====+==== Índices ​====
  
-=== Indice ​de Clave Primaria ===+=== Índice ​de Clave Primaria ===
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesto por el alias de la tabla.   * Puede estar compuesto por el alias de la tabla.
   * Debe empezar por IDX_   * Debe empezar por IDX_
   * En lo posible utilizar el mismo nombre utilizado para la clave EJ: PK_TERCERO → IDX_TERCERO.   * En lo posible utilizar el mismo nombre utilizado para la clave EJ: PK_TERCERO → IDX_TERCERO.
-  * En lo posible almacenar los indices ​en un tablespace diferente al que se utilizó para la definición de la tabla.+  * En lo posible almacenar los índices ​en un tablespace diferente al que se utilizó para la definición de la tabla.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
-=== Indice ​de Clave Externa ===+=== Índice ​de Clave Externa ===
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesto por el alias de la tabla.   * Puede estar compuesto por el alias de la tabla.
   * Si el índice no es un índice de mapa de bits el nombre estará formado por el nombre de la restricción de clave externa y debe empezar por IDX_   * Si el índice no es un índice de mapa de bits el nombre estará formado por el nombre de la restricción de clave externa y debe empezar por IDX_
   * Si el índice es un índice de mapa de bits debe empezar por BIDX_   * Si el índice es un índice de mapa de bits debe empezar por BIDX_
-  * En lo posible almacenar los indices ​en un tablespace diferente al que se utilizó para la definición de la tabla.+  * En lo posible almacenar los índices ​en un tablespace diferente al que se utilizó para la definición de la tabla.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
-=== Indice ​de base Función ===+=== Índice ​de base Función ===
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesto por el alias de la tabla.   * Puede estar compuesto por el alias de la tabla.
   * Debe empezar por FBI_   * Debe empezar por FBI_
-  * En lo posible almacenar los indices ​en un tablespace diferente al que se utilizó para la definición de la tabla.+  * En lo posible almacenar los índices ​en un tablespace diferente al que se utilizó para la definición de la tabla.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
-=== Indice ​de Clave Única ===+=== Índice ​de Clave Única ===
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesto por el alias de la tabla.   * Puede estar compuesto por el alias de la tabla.
   * Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.   * Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.
-  * Si el índice es un índice de mapa de bits debe empzar ​por BIDX_+  * Si el índice es un índice de mapa de bits debe empezar ​por BIDX_
   * índices únicos no se crearán a menos que exista una restricción única correspondiente.   * índices únicos no se crearán a menos que exista una restricción única correspondiente.
-  * En lo posible almacenar los indices ​en un tablespace diferente al que se utilizó para la definición de la tabla. +  * En lo posible almacenar los índices ​en un tablespace diferente al que se utilizó para la definición de la tabla. 
-  * En lo posible utilizar el mismo nombre utilizado para la clave unica EJ: UK_TERCERO01 → IDX_TERCERO01.+  * En lo posible utilizar el mismo nombre utilizado para la clave única ​EJ: UK_TERCERO01 → IDX_TERCERO01.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
-=== Otros Indices ​===+=== Otros Índices ​===
   * El nombre debe estar en singular.   * El nombre debe estar en singular.
   * Puede estar compuesto por el alias de la tabla.   * Puede estar compuesto por el alias de la tabla.
   * Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.   * Si el índice no es un índice de mapa de bits, ó basado en función debe empezar por IDX_.
-  * Si el índice es un índice de mapa de bits debe empzar ​por BIDX_ +  * Si el índice es un índice de mapa de bits debe empezar ​por BIDX_ 
-  * En lo posible almacenar los indices ​en un tablespace diferente al que se utilizó para la definición de la tabla.+  * En lo posible almacenar los índices ​en un tablespace diferente al que se utilizó para la definición de la tabla.
   * No debe superar una longitud máxima de 30 caracteres.   * No debe superar una longitud máxima de 30 caracteres.
  
Línea 177: Línea 177:
  
 ===== Bases de Datos ===== ===== Bases de Datos =====
-Las reglas para la creacion ​de bases de datos serán definidas por el equipo de implantación sin embargo se deben considerar las siguientes recomendaciones:​ +Las reglas para la creación ​de bases de datos serán definidas por el equipo de implantación sin embargo se deben considerar las siguientes recomendaciones:​ 
-  * El nombre debe estar en mayusculas.+  * El nombre debe estar en mayúsculas.
   * El nombre debe intuir el nombre del cliente (utilizar alias).   * El nombre debe intuir el nombre del cliente (utilizar alias).
-  * De ser posible asociar al nombre un identificador ​numerico. EJ DESARROLLO00+  * De ser posible asociar al nombre un identificador ​numérico. EJ DESARROLLO00
  
 ===== PL/SQL ===== ===== PL/SQL =====
Línea 214: Línea 214:
   * Exception: exc_   * Exception: exc_
   *    * 
-=== Parametros ​===+=== Parámetros ​===
   * Entrada: ai   * Entrada: ai
   * Salida: ao   * Salida: ao
   * Entrada/​Salida:​ aio   * Entrada/​Salida:​ aio
  
-=== Extenciones ​de Archivos === +=== Extensiones ​de Archivos === 
-Se permite el tipo generico ​sql para todos los archivos ó según el tipo de objeto se permiten los siguientes tipos:+Se permite el tipo genérico ​sql para todos los archivos ó según el tipo de objeto se permiten los siguientes tipos:
  
-  * Especificacion ​de Paquete: .pks+  * Especificación ​de Paquete: .pks
   * Cuerpo de Paquete: .pkb   * Cuerpo de Paquete: .pkb
   * Consultas: .sql   * Consultas: .sql
Línea 234: Línea 234:
  
 ===== Recomendaciones:​ ===== ===== Recomendaciones:​ =====
-La siguientes recomendaciones no imponen reglas de utilización sin embargo trate en lo posible de aplicarlas ya que el hacerlo optimiza el código generado:+Las siguientes recomendaciones no imponen reglas de utilización sin embargo trate en lo posible de aplicarlas ya que el hacerlo optimiza el código generado:
  
   * Agrupe funciones y procedimientos en paquetes.   * Agrupe funciones y procedimientos en paquetes.
   * Evite la función raise_application_error utilice en su lugar Raise y defina excepciones personalizadas utilizando el inicializador pragma exception_init.   * Evite la función raise_application_error utilice en su lugar Raise y defina excepciones personalizadas utilizando el inicializador pragma exception_init.
-  * Evite los operadoradores ​SQL% ???? en su lugar utilice capturadores begin exception.+  * Evite los operadores ​SQL%en su lugar utilice capturadores begin exception.
   * Evite el uso del Open al abrir cursores en su lugar utilice el bucle for.   * Evite el uso del Open al abrir cursores en su lugar utilice el bucle for.
-  * Todas las consultaas ​select into deben estar incluidas dentro de un bloque begin exception y al menos debe validar las excepciones NOT_DATA_FOUND y TOO_MANY_ROWS+  * Todas las consultas ​select into deben estar incluidas dentro de un bloque begin exception y al menos debe validar las excepciones NOT_DATA_FOUND y TOO_MANY_ROWS
   * Evite el uso de las funciones de formatos en consultas pesadas   * Evite el uso de las funciones de formatos en consultas pesadas
   * TO_CHAR: si valida fechas utilice mejor el operador EXTRACT   * TO_CHAR: si valida fechas utilice mejor el operador EXTRACT
-  * TRUNC en variables numéricas trate de utilizar el operador ​matematico ​que desea aplicar.+  * TRUNC en variables numéricas trate de utilizar el operador ​matemático ​que desea aplicar.
   * Utilice los campos de las tablas de manera explícita. Evite el uso de SELECT * o INSERT INTO VALUES sin especificación de columnas.   * Utilice los campos de las tablas de manera explícita. Evite el uso de SELECT * o INSERT INTO VALUES sin especificación de columnas.
-  * Siempre coloque el nombre del esquema propietario de los objetos para el uso de los mismos (Tablas, Vistas, Secuencias, Funciones, Procedimientos,​ Paquetes, Triggers, etc). Por ejemplo TESORE01.maestro_terceros.+  * Siempre coloque el nombre del esquema propietario de los objetos para el uso de los mismos (Tablas, Vistas, Secuencias, Funciones, Procedimientos,​ Paquetes, Triggers, etc.). Por ejemplo TESORE01.maestro_terceros.
   * Utilice la función NVL, NLV2, DECODE o CASE, en los SELECT cuando no se soporten valores nulos.   * Utilice la función NVL, NLV2, DECODE o CASE, en los SELECT cuando no se soporten valores nulos.
   * No utilizar Caracteres especiales.   * No utilizar Caracteres especiales.
Línea 265: Línea 265:
   * Toda instrucción DELETE debe tener un WHERE.   * Toda instrucción DELETE debe tener un WHERE.
   * Manejar la empresa siempre en los querys, si no necesita la empresa poner la empresa por defecto ‘9999999999’ (en los esquemas multiempresa).   * Manejar la empresa siempre en los querys, si no necesita la empresa poner la empresa por defecto ‘9999999999’ (en los esquemas multiempresa).
-  * Los comentarios de linea se definen con --+  * Los comentarios de línea ​se definen con --
   * Los comentarios de bloque se definen con /* */   * Los comentarios de bloque se definen con /* */
    
 [[ada:​howto:​sicoferp:​factory:​sicoferpscriptsdb:​process|←Volver atrás]] [[ada:​howto:​sicoferp:​factory:​sicoferpscriptsdb:​process|←Volver atrás]]
  
ada/howto/sicoferp/factory/sicoferpscriptsdb/process/standardandpref.1607003071.txt.gz · Última modificación: 2020/12/03 13:44 por 200.116.180.41