Master Detail Na Própria Tabela
MASTER DETAIL
Utilizo, e bastante, banco de dados com referência cíclica, do tipo:
NPVM NPVJ Comprimento CoodenadaX CoordenadaY
1 4 60 (X1) (Y1)
2 4 71 (X2) (Y2)
3 4 65 (X3) (Y3)
4 5 53 (X4) (Y4)
lê-se (registro 1): Trecho N°1 cai no Trecho N°4. Dados do Trecho:
Comprimento, Coordenadas x,y,,z ...
Onde tenho NPVM como chave primária e o NPVJ como chave
estrangeira DA MESMA TABELA.
No aplicativo terei casos em que preciso saber os dados do Trecho atual
(montante) e do Trecho Jusante (as coordenadas do ponto)
(algo do tipo:
SELECT A.*, B.* From TRECHOS A, TRECHOS B
WHERE B.PVM = A.PVJ) definindo uma relação 1 para 1 podendo ser 1 para 0 (último trecho)
e casos em que preciso ter disponível todos os trechos contribuintes do
atual
(algo como:
(SELECT A.*, B.* From TRECHOS A, TRECHOS B
WHERE B.PVJ = A.PVM) - nesse caso posso ter vários trechos ´contribuintes´,
ou seja, uma relação 1 para 0..n.
Tenho, portanto, necessidade de duas formas de master-detail, contrariando várias regras de normalização e formatos tradicionais de relacionamentos.
Utilizando BDE, faço isso sem maiores problemas, defininco as relações através de componentes TTABLE, mas como proceder com dbExpress?
Utilizo, e bastante, banco de dados com referência cíclica, do tipo:
NPVM NPVJ Comprimento CoodenadaX CoordenadaY
1 4 60 (X1) (Y1)
2 4 71 (X2) (Y2)
3 4 65 (X3) (Y3)
4 5 53 (X4) (Y4)
lê-se (registro 1): Trecho N°1 cai no Trecho N°4. Dados do Trecho:
Comprimento, Coordenadas x,y,,z ...
Onde tenho NPVM como chave primária e o NPVJ como chave
estrangeira DA MESMA TABELA.
No aplicativo terei casos em que preciso saber os dados do Trecho atual
(montante) e do Trecho Jusante (as coordenadas do ponto)
(algo do tipo:
SELECT A.*, B.* From TRECHOS A, TRECHOS B
WHERE B.PVM = A.PVJ) definindo uma relação 1 para 1 podendo ser 1 para 0 (último trecho)
e casos em que preciso ter disponível todos os trechos contribuintes do
atual
(algo como:
(SELECT A.*, B.* From TRECHOS A, TRECHOS B
WHERE B.PVJ = A.PVM) - nesse caso posso ter vários trechos ´contribuintes´,
ou seja, uma relação 1 para 0..n.
Tenho, portanto, necessidade de duas formas de master-detail, contrariando várias regras de normalização e formatos tradicionais de relacionamentos.
Utilizando BDE, faço isso sem maiores problemas, defininco as relações através de componentes TTABLE, mas como proceder com dbExpress?
Yashin
Curtidas 0