gmocamilotd
12/4/2017 - 5:46 PM

mi estandar base de datos

Nombres de la tablas

Siempre en singular, usando los sgtes prefijos

M- Maestro  
  entidad del dominio que participa en operaciones principales  
T- Transaccion  
  operacion principal en el dominio  
W- Work  
  entidades de respaldo, cambian poco y normalmente  crecen poco en el tiempo  
  ejemplo: usuarios
D- Diccionario  
  entidades fijas (propias o externas al dominio), no cambian y una vez definidas casi nunca crecen  
Z- Internas  
  entidades o transacciones internas del sistema que el usuario, ni siquiera sabe que existen
  ejemplo: semillas, depuracion, log

nombres de los campos

  • prefijo de tabla+
  • prefijo de tipo de datos+
  • 'ref', si se trata de campo para una llave foranea (cuenta como la 1ra palabra del nombre)
  • su nombre con 5 letras de casa palabra respectiva, (6 letras si queda un string no muy facil de comprender)
    ademas, separado por subguiones, desde la segunda palabra
    Excepto aquellos que tiene menos de 5 letras o los que estan en esta lista:
nro: número  
nom: nombre(s)
fec: fecha
crea: creacion
modi: modficacion
ref: referencia
usu: usuario
doc: documento
fono: teléfono(s)
mail: email o correo
obs: observacion  
fircrea: firma de creación
firmodi: firma de modificación
anyo: año
detll: detalle

Tipos de Datos

 C - caracter, string, varchar, text
 B - boolean
 N - numerico, todos los tipos de números
 D - fecha
 T - tiempo (fecha mas hora, o solo hora)

Las funciones deben de tener nombre en ingles, porque generlamente son nombres mas cortos

ademas uso este profile de base de datos para poder ilustrarla y el criterio para poder obtener la tablas desde los modelos
y este otro que es de scotAmbler

Respecto al nombre de las tablas de usuario

todas empiezan suus nombres en W10 y D10

Ejemplos

w10capelli_nom    
w10bhabil  
w10cfono  
w10cconfig_perso  
w10cref_ofici  
t01cnro_prove  
t01bes_copia  
t01cref_ofici_desti  
cfirmodi
cfircrea 

que esos dos ultimos cambios se llamen igual en todas la tablas ayuda mucho a crear
un procedimiento almacenado unico que actualize los datos respectivos para TODAS las tablas en la base de datos