Skip to content

Nomenclaturas

A continuación se mostrarán una lista de puntos que deben de tener las tablas para cumplir con los estándares de SQL en GM.

Tablas

  • No puede haber tablas con nombres repetidos

  • Dentro de la tabla no puede haber columnas con nombres repetidos

  • Las tablas deben de llamarase en forma plural.

    Ejemplo: SisClientes

  • Las tablas no deben de contener guiones, subguiones, etc…

    Ejemplo:

    SisCliente ✔️

    Sis_Cliente ✖️

  • Las tablas deben de comenzar con un prefijo dependiendo el proceso:

    • Cat para las tablas que sean de tipo catálogos.

      CatClientes

    • Pro para las tablas que graben la información de los procesos.

      ProFacturas

    • Sis para tablas que graben información de sistema y configuraciones.

      SisParametros

  • Todas las tablas deben de tener una campo que se llame Id+[Nombre de la tabla sin el prefijo]. Por ejemplo IdCliente

    IdClienteNombreClienteDominio
    1Cliente1correo
    2Cliente2correo

Campos

  • Los campos deben de llamarse en singular y expresar lo que contienen.

    IdClienteNombreCliente
    1Jorge
    2Eduardo
  • Los campos deben de tener siempre la primera letra mayúscula.

    Ejemplo Correcto ✔️

    IdClienteNombreClienteApellido
    1JorgeSeldom
    2EduardoCargo

    Ejemplo Incorrecto ✖️

    idClientenombreClienteapellido
    1JorgeSeldom
    2EduardoCargo
  • Cada palabra del nombre de la columna debe de estar en mayúsculas.

    Ejemplo

    NombreCliente ✔️

    nombrecliente ✖️

  • Los nombres de los campos no deben de contener guiones, subguiones, etc…

    Ejemplo:

    UnidadPlaca ✔️

    Unidad_Placa ✖️

  • Para todos los casos se debe de definir si el campo debe de recibir valores nulos o no. Por default, cuando no se especifica si un valor admite valores nulos o no, el campo se define con null. Pero eso está incorrecto y siempre se debe de definir si un valor acepta valores nulos o no al crear una tabla

    CREATE TABLE ProCiudades(
    IdCiudad int NOT NULL
    Codigo int NULL
    Ciudad varchar(50) NOT NULL
    ...
    )
  • En los casos donde un campo sea de tipo booleano se debe de definir un valor por default, esto para eliminar confusiones.

    CREATE TABLE ProCiudades(
    ...
    IsActivo boolean NOT NULL DEFAULT FALSE
    ...
    )

Llaves

Al crear una tabla con una llave primaria de esta manera:

CREATE TABLE ProCiudades(
IdCiudad int NOT NULL PRIMARY KEY
Codigo int NULL
Ciudad varchar(50) NOT NULL
...
)

Aun cuando la definición es correcta, el sistema creará un índice con un nombre interno como: PK_TABLA_NUMEROALEATORIO, que no se apega a los estándares de la empresa. Es por eso que las llaves primarias, foráneas y únicas se definen con un nombre específico al momento de crear la tabla. Entonces como primera regla a seguir:

NO se deben de utilizar directamente los estatutos PRIMARY KEY, ni FOREIGN KEY. En su lugar, se debe utilizar el estatuto CONSTRAINT y después definir las llaves primarias y referenciales.

Las llaves primarias y referenciales se deben definir con el estatuto CONSTRAINT.

Para las llaves primarias la nomenclatura sería la siguiente:

CONSTRAINT +Nombre de la Llave Primaria. El nombre de la llave primaria se arman con el campo Id+[Nombre Tabla Sin Prefijo] y se deben llamar Pk+Id+[Nombre tabla sin prefijo] + PRIMARY KEY([Campo ID])

Para las llaves foráneas la nomenclatura sería la siguiente:

CONSTRAINT + Nombre de la Llave Referencial. El nombre de la llave referencial tiene como nomenclatura Fk+[NombreCampo]+[Nombre Tabla Padre Con Prefijo]+[Nombre Tabla Hijo Con Prefijo] + FOREIGN KEY([Campo referencial]) REFERENCES Tabla([Campo Llave primaria]) [ON DELETE CASCADE]

Para modificar el nombre de llaves foráneas en Spring visita este Link

CREATE TABLE ProCiudades(
IdCiudad int NOT NULL
IdEstado int NOT NULL
Codigo int NULL
Ciudad varchar(50) NOT NULL
...
CONSTRAINT PKIdCiudad PRIMARY KEY([IdCiudad]),
CONSTRAINT FKIdEstado_ProCiudades_ProEstados PRIMARY KEY([IdEstado]),
...
)

Índices

Un índice es una estructura adicional a los datos, que auxilia en la recuperación eficiente de la información. Aún cuando auxilian en la recuperación de la información, tienen una sobre carga para el sistema en las modificaciones y altas de la información, pues hay que actualizar los datos e índices.

Para modificar el nombre de índices en Spring visita este Link

Su nomenclatura sería la siguiente:

CREATE NONCLUSTERED INDEX <Nombre del Índice> ON (lista de campos, separados por comas) [ASC|DESC] <opciones de configuración>

Por ejemplo:

CREATE NONCLUSTERED INDEX FkTeam_Socios ON Socios (Team);
CREATE NONCLUSTERED INDEX FkCoach_Socios ON Socios (Coach);
CREATE NONCLUSTERED INDEX FkMemberType_Socios ON Socios (MemberType);

Procedimiento Almacenados

Los registros (altas), borrados o bajas y cambios o modificaciones a la base de datos de realizan mediante procedimientos almacenados. En lugar de realizar un query donde se inserte o se modifique algo en una tabla este se debe de realizar mediante un procedimiento almacenado.

Los nombres de los procedimientos almacenados cambian dependiendo del proceso que realizan:

Para altas o registros:

usp_[Tabla]Agregar - Por ejemplo: usp_CatBancosAgregar

Para actualizaciones o cambios:

usp_[Tabla]Modificar - Por ejemplo: usp_CatBancoModificar

Para borrados o bajas:

usp_[Tabla]Eliminar - Por ejemplo: usp_CatBancosEliminar

Para obtener el siguiente número para proponer en el folio:

usp_[Tabla]GetMaxCodigo - Por ejemplo: usp_CatBancosGetMaxCodigo