Ver Mensaje Individual
  #8  
Antiguo 22-05-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Muy buena la idea.

Cita:
Empezado por José Luis Garcí Ver Mensaje
XCP T10 /* T10 = VARCHAR(20) */, //Código Postal
Pero, a proposito, que te parece la idea revolucionaria de llamar a campos como "XCP", no se, como "CodigoPostal"!

He hecho integraciones a decenas de ERPs, y no sabes lo complicado que es porque los nombres son obtusos y poco claros. Las abreviaciones y las construcciones tipo "XXXAAAYYTT" no solo obscurecen sino que son innecesarias, no ganan nada en cuanto a desempeño, almacenamiento ni nada por el estilo.

El el sistema que tengo, uso asi (estoy estandarizado a hacer todo en ingles):

Código SQL [-]
CREATE TABLE Customer (
  Id             integer PRIMARY KEY AUTOINCREMENT,
  Code           varchar NOT NULL UNIQUE COLLATE NOCASE,
  Name           varchar NOT NULL COLLATE NOCASE,
  IsSupplier     boolean NOT NULL DEFAULT 0,
  Image          varchar,
  Zone           varchar,
  IsActive       boolean NOT NULL DEFAULT 1,
  Email          varchar,
  DefaultPrice   integer NOT NULL DEFAULT 1, /*1-5*/
  Contact        varchar COLLATE NOCASE,
  Company        varchar COLLATE NOCASE,
  IdLocation     integer NOT NULL,
  Address        varchar COLLATE NOCASE,
  ZipCode        varchar,
  Phone          varchar,
  Phone2         varchar,
  Cellphone      varchar,
  Notes          varchar,
  MaxBalance     double,
  Status         integer DEFAULT 0,/*RECORD_OK=0, RECORD_NEW=1, RECORD_UPDATED=2, RECORD_DELETED=-1*/
  Info           varchar,
  /* Foreign keys */
  FOREIGN KEY (IdLocation)
    REFERENCES Location(Id) ON DELETE CASCADE
);

No tengo que documentar que significa los campos (los comentarios no deben usarse para saber lo que el codigo te puede decir) sino para decir que valores se esperan (que realmente es lo necesario).

Ya que los nombres son claros, cuando construyo la interfaz de usuario, puedo hacer gracias como:

Código Delphi [-]
forma.titulo = _([Customer tableName]); //Sale "Customer" y la funcion _() lo convierte a otros idiomas
lbName.text = Customer.NAME; //No tengo que repetir que customer name es Name, porque ya lo se!

Osea, puedo reusar los nombres como etiquetas. Puedo mostrar la tabla a clientes, sin mucho lio. Puedo hacer consultas SIN MIRAR DOCUMENTACION, solo mirando tablas y nombres de campos.


-----
Y aproposito, que piensas hacer con esto? Un proyecto open source? Si es asi, considera montarlo en github o bitbucket...
__________________
El malabarista.
Responder Con Cita