Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Solicitud de ayuda en tablas (https://www.clubdelphi.com/foros/showthread.php?t=74987)

José Luis Garcí 22-07-2011 17:38:51

Solicitud de ayuda en tablas
 
Hola Compañeros estoy avanzando en mi programa para crear la base de datos y las tablas en firebird, sólo crearlas nada de modificarlas, la idea es poder crear una base de datos más o menos avanzada y rápida, os pongo un pantallazo para que os hagáis una idea.




el tema es que en la parte de



Me gustaría que me ayudarais, poniendo dentro de lo posible la información de la estructura de vuestras bases de datos, en el formato DDL o como quieran, si aportáis una descripción del por que de los campos mejor. Yo tengo definidas muchas de esta bases de datos, pero el tiempo me ha ido enseñando que a posteriorí hay que modificarlas, por falta o sobra de campos, es por este motivo que quiero afinarlo.

En este momento el programa esta en la base de introducir datos, una vez termine, podre pasar a crear las tablas, no os preocupéis por el tema de las maestro detalle, bastaría con indicar el campo de unión.

Las bases de datos sobre las que pido ayuda son :

Almacén
Familias
Proveedores
Clientes
Artículos
Vehículos (Maestro y detalle)
Facturas (Maestro y detalle), de esta se pueden sacar, pedidos, albaranes, etc.
Configuración (aunque esta última, sería mucho más personal, seguramente tendremos muchos campos en Común).

Como siempre muchas gracias por adelantado por vuestra ayuda y cuando termine el programa lo publicare.

José Luis Garcí 29-07-2011 21:29:31

Como veo que se ha quedado en el olvido, vuelvo a solicitar la ayuda de los compañeros

Casimiro Notevi 29-07-2011 22:13:13

No entiendo, ¿qué quieres exactamente?

José Luis Garcí 29-07-2011 22:35:11

Ver la estructura de las tablas, para compararla con las mías y mejorarlas en la pre estructura del programa al crear las tablas

Casimiro Notevi 29-07-2011 23:39:12

Después de estar un rato copiando y pegado, le doy a "enviar" y me dice que no puedo exceder los 20000 bytes (creo recordar), se ha "descompuesto" todo el código sql y se ha formado un lio tremendo que no había quien lo entendiera, así que si quieres te envío la estructura a tu email.

José Luis Garcí 30-07-2011 08:23:57

Como no Casimiro, muchas gracias, envíamelo a Desart @ misabueso . com

José Luis Garcí 30-07-2011 09:02:43

Para que quede un poco más claro lo que solicito pongo la DLL de mi tbla Clientes de mi programa

Código Delphi [-]
/******************************************************************************/
/*                  Generated by IBExpert 30/07/2011 9:20:06                  */
/******************************************************************************/



/******************************************************************************/
/*                                   Tables                                   */
/******************************************************************************/



CREATE TABLE CLIENTES (
    CODIGO             CODIGO NOT NULL /* CODIGO = VARCHAR(20) NOT NULL */,
    FECHA_ALTA         DFECHA /* DFECHA = DATE */,
    NIF_CIF            DVARCHAR12NIFCIF /* DVARCHAR12NIFCIF = VARCHAR(15) */,
    NOMBRE_COMERCIAL   DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    DIRECCION          DVCHAR50 /* DVCHAR50 = VARCHAR(50) */,
    CODIGO_POSTAL      DVARCHAR5 /* DVARCHAR5 = VARCHAR(5) */,
    POBLACION          DVARCHAR30 /* DVARCHAR30 = VARCHAR(30) */,
    PROVINCIA          DVARCHAR30 /* DVARCHAR30 = VARCHAR(30) */,
    WEB                DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    EMAIL_1            DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    EMAIL_2            DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    BANCO              DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    ENTIDAD            DCHAR4 /* DCHAR4 = CHAR(4) */,
    OFICINA            DCHAR4 /* DCHAR4 = CHAR(4) */,
    DIGITO_CONTROL     DCHAR2 /* DCHAR2 = CHAR(2) */,
    NUMERO_CUENTA      CHAR10NCC /* CHAR10NCC = CHAR(10) */,
    TELEFONO_1         DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    TELEFONO_2         DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    FAX                DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    MOVIL              DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    PERSONA_CONTACTO   DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    EMAIL_PC           DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    MOVIL_PC           DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    FORMA_PAGO         DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    FECHAS_PAGO        DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    CONFIANZA          DNIVEL /* DNIVEL = CHAR(1) DEFAULT '0' NOT NULL CHECK (VALUE IN('0','1','2','3','4','5','6','7','8','9')) */,
    LIMITE_CREDITO     DIMPORTE /* DIMPORTE = NUMERIC(15,3) */,
    PENDIENTE_PAGO     DIMPORTE /* DIMPORTE = NUMERIC(15,3) */,
    AVISOS             DMEMO /* DMEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    OBSERVACIONES      DMEMO /* DMEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    NOTAS              DMEMO /* DMEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    IMAGEN             DIMAGEN /* DIMAGEN = BLOB SUB_TYPE 0 SEGMENT SIZE 80 */,
    RAPEL              DLOGICO /* DLOGICO = CHAR(2) DEFAULT 'NO' NOT NULL CHECK (VALUE IN('SI','Si','si','NO','No','no')) */,
    GRUPO              DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    PAIS               DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    IMPUESTOS          DLOGICO /* DLOGICO = CHAR(2) DEFAULT 'NO' NOT NULL CHECK (VALUE IN('SI','Si','si','NO','No','no')) */,
    REQ                DLOGICO /* DLOGICO = CHAR(2) DEFAULT 'NO' NOT NULL CHECK (VALUE IN('SI','Si','si','NO','No','no')) */,
    TIPO_IMP           DDECIMAL /* DDECIMAL = NUMERIC(2,2) */,
    DTO                DDECIMAL /* DDECIMAL = NUMERIC(2,2) */,
    TARIFA             INTEGER,
    DIAS_PRESENTACION  DVARCHAR20 /* DVARCHAR20 = VARCHAR(20) */,
    SECTOR             DVARCHAR40 /* DVARCHAR40 = VARCHAR(40) */,
    AGENTE             DCLAVE /* DCLAVE = VARCHAR(20) */,
    CUMP_PC            DFECHA /* DFECHA = DATE */
);




/******************************************************************************/
/*                                Primary Keys                                */
/******************************************************************************/

ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO);


/* Fields descriptions */

COMMENT ON COLUMN CLIENTES.CONFIANZA IS 
'COMFIANZA  PARA CONTROL DE AVISOS Y LIMITES DE CREDITO';



/******************************************************************************/
/*                                 Privileges                                 */
/******************************************************************************/

José Luis Garcí 30-07-2011 09:39:34

Se me olvido explicar un poco los Campos

Comentaros que PC, es persona de contacto
Fijaros que en impuestos (Aquí IGIC, pero si pongo este nombre y mañana cambiase, tendría que modificar el programa, lo que hago es ponen en la Tabla de Configuración un campo para el nombre del Impuesto), , tiene tres apartados,
IMPUESTOS (lógico) para en consultas saber clientes con impuestos o no, ademas de otras cuestiones.
REQ (lógico) llamado Retenido o Requerido, con un campo de retención en Configuración para el porcentaje, realmente tendré que añadir este campo en el cliente ya que puede, seleccionar su nivel de retención.
TIPO_IMP Tipo de impuesto (Numeric), para elegir el tipo de impuesto, lo pase de configuración a Clientes debido a que varía según el país y otras cuestiones.
---
TARIFA (integer), creo que esta claro pero por si las moscas el tipo de precio que le vamos a cobrar a el Cliente los artículos deben tener más de un precio posible de echo yo en mi programa tengo 5 diferentes.
RAPEL (Lógico), nos permite saber si hay que aplicarle rapel de precios, partiendo de la TARIFA de ventas, ha mayor cantidad comprada aumenta el nivel de Tarifa (lo que disminuye su precio).
DTO (Numeric) aplicamos la posibilidad de descuento, pero tenemos en cuenta el aplicado en el producto, si este es mayor, le aplicamos el del producto, si no le aplicamos este.
GRUPO (varchar) es para establecer el tipo de clientes (Pequeño, mediano, grande, Problemático, No Fiarse, Etc)
SECTOR (Varchar) Sector al que pertenece, (Hoteles, Restauración, Lavanderías, Automoción, Etc).
AGENTE (Varchar) es lo mismo que un comercial.

El resto de los campos creo que están claros y por eso no los comento

fjcg02 30-07-2011 22:40:01

Hola José Luis,
no sé cuanto de complicados son tus clientes, pero yo por de pronto, haría varias cosas.

1.- direcciones y personas de contacto. Además de la dirección completa, teléfono, web y mail, añadiría una tabla de personas de contacto, con sus nombres concretos, teléfonos personales fijos y móviles, cargo que ocupa en la empresa, mail personal, observaciones, fecha de cumpleaños, ... y lo que proceda. Lo mismo para las direcciones. Por una parte la dirección general y otra tabla de direcciones, por si un cliente tuviera varias direcciones, y si estas direcciones son de entrega, facturación, ...
2.- Por otro lado, con los bancos del cliente haría lo mismo, a otra tabla, indicando si se puede girar a esa cuenta, si se puede domicilar,...

Esto también aplica a los proveedores.

Espero haberte ayudado.

Un saludo

José Luis Garcí 31-07-2011 08:16:24

Hola fjcg02, decirte que me parece interesante, tú planteamiento, me imagino que luego lo que haces para visualizar editar, borrar, etc es unión de las diferentes tablas por SQL.

Decirte que de momento mi cliente soy yo, ya que es para mi empresa, para quien estoy creando un programa, que debido a la actividad de la misma, se sale de los cánones normales, a parte de los módulos normales de un programa, y recuerdo que entre ellos debe estar, La Ley de Protección de datos y la Trazabilidad, (cosa que suelo mirara en programas en venta y siguen sin aparecer en ellos), debe llevar formulación, Etiquetado, envasado, rutas, Fichas de Seguridad y técnicas, cajas, etc...

Comentarte además que lo que solicito aquí no es para ningún programa en particular, se trata de crear un sistema con dos fases la primera poder crear bases de datos en firebird de una manera más rápida y completa, y la segunda, va unida a otro programa (AutoABM), para permitir, crear el form, con los campos de la base de datos ya construidos en el, una especie de auto formulario, o como en el delphi 6, que teníamos un asistente para crear el formulario, de una base de datos.


La franja horaria es GMT +2. Ahora son las 19:24:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi