none
llave primaria y constrain unique RRS feed

  • Pregunta

  • tengo la siguiente tabla

    create table dbo.credito_asesoria (
    tipoiden varchar(1) not null,  --referencia tabla 'tipo_identificacion'
    nit varchar(14) not null,
    codsol numeric(8,0) not null,

           .....

    tipoasesoria numeric(1,0) not null,    --0 deudor y 1 codeudor
    tramite smallint not null,  --- 0 oficina 1 central ref dbo.credito_tipo_tramite
    consec  int not null, -- consecutivo unico
    constraint pk_consec primary key(consec),
    constraint ak_solnittram unique(codsol,tipoiden,nit,tramite)
    );

    el campo   'consec' se creo para evitar crear en algunas tablas los campos (codsol,tipoiden,nit,tramite).

    tendria ejemplo:

    codsol   tipoiden    nit         tramite   consec tipoasesoria

    1546        'C'       '76549'   0              1            0

    1546        'C'       '54678'   0              2            1

    1546        'C'       '76549'   1              3            0

    1546        'C'       '54678'   1              4            1

    en otra tabla  (historial_solicitud) debo llevar la solicitud (codsol) de prestamo solicitado con los datos iniciales capturados en la oficina  (tramite=0) y la misma informacion que luego es evaluada o modificada en la central(tramite=1).

    codsol    tramite   ....

    1546        1            

    1546        0            

    la llave principal de historial_solicitud  es   'CONSTRAINT [pk_codsolhistorial] PRIMARY KEY (codsol,tramite)'

    para poder relacionarla con la tabla 'credito asesoria'...le inclui el campo 'consec' y su respectiva ...' constraint ak_consec unique(consec)'

    ahora...para poder controlar de que el consec que me muestre al listar...corresponda al tramite que realizo?

    pense en agregar otro constraint unico en la tabla credito_asesoria.

    alter table dbo.credito_asesoria add constraint ak_consoltra unique(consec,codsol,tramite) y  asi crear el enlace con los tres campos ...asegurandome que el consec coincida con el codsol y tramite.

    Esto haria que la tabla credito_asesoria tenga una pk y dos ak.

    o mejor deberia reemplazar en la tabla historial_solicitud el campo consec por tipoasesoria y a este campo colocarle una

    restriccion CHECK .

    eso esta bien ?...cual seria la mejor opcion

    alguna sugerencia?



    • Editado Hacerdan jueves, 1 de junio de 2017 20:48 mejorar la comprension
    jueves, 1 de junio de 2017 20:42

Respuestas

  • Hola Hacerdan:

    Puedes subir un MER con las referencias que indicas, solo para tener un mejor entendimiento de lo que preguntas o lo que desea?. Es que es confusa tu pregunta, adicional a ello veo que se trata de decisiones de diseño, y estas se basan en las reglas de negocio que la aplicación maneje o que el cliente solicite.

    Gracias.


    Camilo Villa

    lunes, 12 de junio de 2017 19:03