Ajuda Importante

Proll

Membro
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
 
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
 
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
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
 
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

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...

Armadillo:
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.
É 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.
 
Back
Topo