| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 19:12:02
|
clarinetabest
JavaChild
Membro desde: 26/04/2008 14:20:00
Mensagens: 121
Offline
|
Olá pessoal, tenho a seguinte situação: PRODUTOS * ---- 0..1 PROMOÇÕES.
como ficariamminhas tabelas? no mysql quando coloco uma fk (ID_PROMOCOES) do tipo int em produtos, o mesmo não aceita null, mais o produto pode ou não ter uma promoção, assim sendo as vezes esta fk em produtos irá ficar vazia, só que o bd não aceita por o campo ser int, o que fazer????????
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 22:44:25
|
hodrigohamalho
JavaChild
![[Avatar]](/images/avatar/2895912667223223c3277a2f44df5a1f.jpg)
Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline
|
você tem que ter uma fk de produtos em promoções. E não o contrario.
|
Rodrigo Ramalho
"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 22:58:28
|
Andre Brito
JWizard
Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline
|
hodrigo, acho que ele está certo... Produtos tem FK de Promoções.
Quando você lida com relações 1 para N com JPA, você pode usar uma JoinTable ou JoinColumn. Qual destas você está usando?
Dá uma olhada nesta página.
|
Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/04/2010 23:03:59
|
hodrigohamalho
JavaChild
![[Avatar]](/images/avatar/2895912667223223c3277a2f44df5a1f.jpg)
Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline
|
verdade, não me atentei direito a relação...
|
Rodrigo Ramalho
"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/04/2010 08:59:58
|
ccllss
JavaBaby
Membro desde: 26/09/2007 10:01:43
Mensagens: 75
Offline
|
clarinetabest wrote:Olá pessoal, tenho a seguinte situação: PRODUTOS * ---- 0..1 PROMOÇÕES.
como ficariamminhas tabelas? no mysql quando coloco uma fk (ID_PROMOCOES) do tipo int em produtos, o mesmo não aceita null, mais o produto pode ou não ter uma promoção, assim sendo as vezes esta fk em produtos irá ficar vazia, só que o bd não aceita por o campo ser int, o que fazer????????
Clarinetabest,
Como o banco não aceita null nessa FK de promoções em produto ? Deve aceitar sim! A menos que essa sua FK não seja uma FK e sim uma PFK, que neste caso a FK de promoções faz parte da chave primária da tabela "produtos".
Se for uma PFK você tem um relacionamento forte entre as tabelas "promocoes" e "produtos". O que você deve fazer é um relacionamento fraco entre elas onde a FK ID_PROMOCOES possa ser nula na tabela produtos.
Veja uma DDL para Postgres que mostra que isso é possível e algumas instruções DML para inserção de dados nas tabelas e logo abaixo as definições das classes Produto e Promocao.
@braços
|
Cleiton L. Siqueira - Analista de Sistemas
Bacharel Ciência da Computação |
|
|
 |
|
|
|
|