1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda Importante

Discussão em 'Programação' iniciada por Proll, 22 de Maio de 2009. (Respostas: 3; Visualizações: 701)

  1. Boa tarde.


    Estou a criar uma base de dados com o access para a gestão de documento comerciais como facturas, guias de remessa etc... tive a ideia de colocar todos os dados do cabeçalho dos documentos na mesma tabela e as linhas noutra. O problema é o seguinte, os documentos de transporte e de liquidação tem campos diferentes pensei em dividilos em duas tabelas, uma para documentos de transporte e outra para os de liquidação, relacionadas com a dos dados do cabeçalho atraves de relações um para um, porem o access não deixa criar as linhas. Alguem tem alguma sugestão de como isto pode ser resolvido???

    Agradeço desde ja
     
  2. Thorak

    Thorak Power Member

    Essa parte dos dados do cabeçalho num documento e os registos noutra, acho que não faz muito sentido.

    Deves fazer primeiro um modelo relacional com todas as tabelas envolvidas, relações, chaves, tudo, antes de a colocares no Access. Se quiseres podes depois mostrar aqui o esquema para nós analisar-mos e opinar-mos
     
  3. Armadillo

    Armadillo Folding Member

    De facto, a forma como o Proll está a estabelecer o raciocinio é a mais correcta, já que os dados ficam normalizados.

    Para, por exemplo, Facturas, temos:

    Código:
    [U]Tabela_Cabec_Facturas[/U]
    *ID_Factura (campo chave)
    Data_Factura
    ID_Cliente
    
    Código:
    [U]Tabela_Linhas_Factura[/U]
    *ID_Factura (campo chave)
    *ID_Linha (campo chave)
    ID_Produto
    Quantidade
    PVP
    
    Em que Tabela_Cabec_Facturas.ID_Factura liga com Tabela_Linhas_Factura.ID_Factura

    Todo o tipo de documentos com o formato Cabecalho/Linhas, devem ser muito próximos disto.

    Por uma questão de comodidade convém criar tabelas diferentes, consoante o tipo de documento, sejam facturas, recibos, guias de transporte, etc etc.
    Se não quiseres, crias um campo em que defines a que tipo de documento corresponde o cabeçalho e as linhas.

    cumps
     
  4. slack_guy

    slack_guy Power Member

    A relação entre a factura e as linhas da factura é uma relação 1 -> N (uma factura -> N linhas).

    Como sugeriu o Armadillo:
    Código:
    [B]tabFacturas[/B]
    [I]id_factura[/I] (chave primária)
    [I]data[/I]
    [I]fk_id_cliente[/I] (chave estrangeira)
    ...
    
    [B]tabFacturasLinhas[/B]
    [I]id_linha[/I] (chave primária)
    [I]fk_id_factura[/I] (chave estrangeira tabFacturas, id_factura)
    [I]fk_id_produto[/I] (chave estrangeira tabProdutos, id_produto)
    [I]qt[/I]
    ...
    
    A mesma coisa para os restantes documentos:

    Exemplo: se podes liquidar (emissão de recibo) parte de uma factura e se podes agregar no mesmo recibo várias facturas, então, será uma relação 1 Recibo -> N Facturas e 1 factura -> N recibos (um recibo pode pagar várias facturas e uma factura pode ser paga por vários recibos (a)).
    Código:
    [B]tabRecibos[/B]
    [I]id_recibo[/I] (chave primária)
    [I]fk_id_cliente[/I] (chave estrangeira)
    [I]data[/I]
    [I]valor[/I]
    ...
    
    [B]tabRecibosFacturas[/B]
    [I]id_recibo_factura[/I] (chave primária)
    [I]fk_id_factura[/I] (chave estrangeira tabFacturas, id_factura)
    [I]fk_id_recibo[/I] (chave estrangeira tabRecibos, id_recibo)
    [I]valor_recebido[/I]
    ...
    
    (a) Um recibo também pode pagar notas de crédito e de débito...

    É muito importante pensares nisto antes de fazeres o que quer que seja, caso contrário, 'podes dar com os burrinhos na água' mais adiante...
    Ambas as possibilidades são válidas, mas depois de optares por uma dificilmente voltas atrás.
     

Partilhar esta Página