› Fóruns › Banco de dados Oracle › Problema com tabela Associativa com tabela filha nula
- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 18 anos, 10 meses atrás por
DanielB.
-
AutorPosts
-
6 de julho de 2007 às 9:31 pm #79967
Adenilton
ParticipanteOlá pessoal,
Tenho o seguinte problema:
TABELA_A – COD_A
TABELA_B – COD_A e COD_B (Essa tabela é filha da TABELA_A)
TABELA_GRUPO – COD_GRUPOE tabela associativa:
TABELA_ASSOC – COD_A(NOT NULL), COD_B(NULL) e COD_GRUPO(NOT NULL)Regras:
1. Eu posso ter TABELA_A em vários grupos, porém os grupos não podem se repetir.
2. Se não existir grupo para a TABELA_A – que é a pai da TABELA_B -, eu posso ter TABELA_B em vários grupos, porém os grupos não podem se repetir.
3. Caso já exista TABELA_A em TABELA_ASSOC eu não posso inserir TABELA_B em TABELA_ASSOC, pois a TABELA_B herda o grupo da TABELA_A (pai).* Problema (N:M S/ REPETICAO):
Primeira coluna = TABELA_A
Segunda coluna = TABELA_B
Terceira coluna = TABELA_GRUPOCenário – Incluindo em TABELA_ASSOC:
TABELA_ASSOC :
| 1 | x | 1 | – PERMITIDO
| 1 | x | 1 | – NAO PERMITIDO (JÁ EXISTE ESTE GRUPO PARA TABELA_A)
| 1 | x | 2 | – PERMITIDO
| 1 | 1 | 1 | – NAO PERMITIDO (JÁ EXISTE ESTE GRUPO PARA TABELA_A)
| 1 | 2 | 2 | – NAO PERMITIDO (JÁ EXISTE ESTE GRUPO PARA TABELA_A)
| 1 | 1 | 3 | – PERMITIDO
| 1 | 1 | 3 | – NAO PERMITIDO (JÁ EXISTE ESTE GRUPO PARA TABELA_B)
| 1 | x | 3 | – NAO PERMITIDO (JÁ EXISTE ESTE GRUPO PARA TABELA_B)Onde x = NULL
Criei a TABELA_ASSOC com FK de todas as outras tabelas, mas acontece que não valida a inclusão e ocorre repetição.
Como posso solucionar esse problema em TABELA_ASSOC ??????
6 de julho de 2007 às 9:36 pm #79968Adenilton
ParticipanteAcrescentando:
Já tentei Constraints, Uniques e Checks. Mas, não obtive sucesso!
7 de julho de 2007 às 5:38 am #79973Anônimo
Olhando seu exemplo fiquei com a impressão de que uma constraint unique contendo a primeira e a última colunas resolveria o caso.
7 de julho de 2007 às 5:43 am #79974DanielB
Participantelo mejor va a ser validar mediante un trigger de la BD
9 de julho de 2007 às 6:12 pm #79981Adenilton
Participantetommahawk já tentei Uniques. Mas a regra entra em conflito com uniques!
DanielB pensei em Trigger antes, mas queria saber se teria uma solução sem Trigger. Se existe como solucionar através de uma boa modelagem, por exemplo !?!?!
Valewsss galera……..
10 de julho de 2007 às 6:59 am #79985DanielB
Participantesi no entendi mal, estoy de acuerdo con tommahawk
la primary de A es cod_A
la primary de B es cod_A, cod_B con una foreign key de la tabla B a la A
(cod_A a cod_A)la tabla Grupo tiene clave cod_G
y la tabla asociativa
tiene como primary cod_A, cod_G
no entiendo donde falla esa solucion -
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Problema com tabela Associativa com tabela filha nula