none
Sugerencias con Cola de Banco RRS feed

  • Debate general

  • Hola buenos días, estaré muy agradecido si me pudieran apoyar con algunos conceptos y sugerencias por favor.

    Estoy usando la siguiente tabla, para simular una cola de atención en una institución (bancos, hospitales, etc.) y en base a eso estoy desarrollando una aplicación Cliente -Servidor.

    CREATE TABLE TLineaEspera -- TCola

    (

     ItemNumber           CHAR(30)    NOT NULL, -- Codigo autonumerico(No numero de atencion)

     CodAtencion          CHAR(5)   NOT NULL, -- Código de atención o número del Ticket

     Fecha                DATE      NOT NULL, -- De trabajo

     FechaHoraEmision     DATETIME NOT NULL,-- Del ticket

     FKCodCliente         CHAR(12)  DEFAULT NULL REFERENCES "TClientes",

     FKCodServicio        CHAR(7)   DEFAULT NULL REFERENCES "TTipoServicios",

     FKCodVentanilla      CHAR(10)  DEFAULT NULL REFERENCES "TTerminalVenta",

     FKCodSucursal        CHAR(7)   NOT NULL REFERENCES "TSucursal",

     FechaHoraLlamada     DATETIME DEFAULT NULL,-- Inicio de atención

     FechaHoraFinAtencion DATETIME DEFAULT NULL,

     Status               VARCHAR(25) NOT NULL 

      CHECK(Status IN ('DISPONIBLE','ATENDIENDO','ATENDIDO')),

     PRIMARY KEY  (ItemNumber)

    );

    Buenos tengo algunas dudas (No es necesario que me apoyen con todas J ):

    1).- el diseño estaría correcto, le faltan o sobran campos, el campo “Status” debería tener tres estados?

    2).- Una ventanilla de atención usa el siguiente procedimiento para llamar a la siguiente persona de la cola: 

    Sfu_TLineaEspera_LlamarCliente(IN_CodTPV VARCHAR, IN_FechaHoraLlamada DATETIME )

    Mi pregunta es la siguiente: que pasa cuando varias ventanillas hacen el llamado al SPU al mismo tiempo, entiendo que es el gestor de base de datos el que maneja el control de CONCURRENCIAS, de no ser así se debería aplicar algún mecanismo de espera o de bloqueo a la tabla y como seria?

    3).- Para calcular el tiempo que una ventanilla de atención uso en atender un cliente, empezaría a contar desde el momento en que esta(ventanilla) hace el llamado y finaliza cuando realiza el siguiente llamado (entonces que pasaría si al hacer el llamado dicho cliente se encuentra ausente por x motivos, como se manejaría, tendría que usar otro SPU para actualizar los estados, por ejemplo, poner el campo “Status” a “NO ATENDIDO” no lo sé)

    4).- En que momento actualizaría el campo “Status” o ese campo esta demás, bueno tengo N dudas que no quiero abusar de su amabilidad. Por favor cualquier consejo se los agradeceré infinitamente. Saludos

    jueves, 28 de julio de 2016 15:20