Chave primária e estrangeira

716 views
Skip to first unread message

Daiana :B

unread,
Feb 24, 2010, 7:06:05 AM2/24/10
to Django Brasil
Tem como um campo ForeignKey ser Primarykey também?

Cordiais saudações!

Diego Henrique Oliveira

unread,
Feb 24, 2010, 7:22:29 AM2/24/10
to django...@googlegroups.com
Desculpe a pergunta: mas qual a finalidade disso?




Em 24 de fevereiro de 2010 09:06, Daiana :B <dailoi...@gmail.com> escreveu:
Tem como um campo ForeignKey ser Primarykey também?

Cordiais saudações!

--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Fabricio Mattos

unread,
Feb 24, 2010, 7:28:20 AM2/24/10
to django...@googlegroups.com
Daiana,

Teria como você especificar um pouco mais sua pergunta...

Geralmente em modelagem de banco de dados a chave primaria de uma tabela é a chava estrangeira em outra tabela.

Até existem casos mas são extremamente raros e especificos, tais como um tabela de histórico guardar o id de uma mudança para saber quais foram todas as mudanças que ocorreram com aquele id. Nesse caso a tabela relaciona id com o id dela mesma.

Sacou...

Fabricio




Em 24 de fevereiro de 2010 09:06, Daiana :B <dailoi...@gmail.com> escreveu:
Tem como um campo ForeignKey ser Primarykey também?

Cordiais saudações!

Igor Sobreira

unread,
Feb 24, 2010, 10:58:04 AM2/24/10
to django...@googlegroups.com


2010/2/24 Daiana :B <dailoi...@gmail.com>

Tem como um campo ForeignKey ser Primarykey também?


Tem, qualquer campo pode ser chave primária:


Mas assim como o Diego, fiquei curioso também pra saber a finalidade disso...

--
Igor Sobreira
www.igorsobreira.com

MrBiTs

unread,
Feb 24, 2010, 12:01:14 PM2/24/10
to django...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

> Mas assim como o Diego, fiquei curioso também pra saber a finalidade
> disso...

IMHO, não há finalidade nenhuma. Acho que

a) ela não conhece nada de modelagem de dados
b) ela não conhece nada de Django e não quer ler os tutoriais ou fazer uma mínima lição de casa

É ilógico que uma chave estrangeira em uma tabela seja chave primária dessa tabela, a não ser que ela (a tabela) possua uma chave
primária composta.

Daiana, seja mais específica nas dúvidas, e faça um pouco de lição de casa. Suas perguntas mostram que você tem um problema e quer
que os outros resolvam para você. E você nem é educada nas suas mensagens.

- --

Um abraço

.0. MrBiTs - mrbit...@gmail.com
..0 GnuPG - http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iQEcBAEBCAAGBQJLhVtaAAoJEG7IGPwrPKWr5eEH/R9WFzQ/aEgSn7uVInIabU0X
u130sjKO5UPnA4seccQ8VfNXFWWs7S9C5qI+12WwhEI4qgAantzM/jzdLrw78R8e
jTG19SbnxHSBC6bWLSzzLw+j8l/BeIZLXbJnviKsulYJIRsL9s/B5I78Sol5Z/rv
VNn7VlGTBp8s+OAfK70sBhyHDwWo7Az/oTBMJFOmtM47/bZwZGIJ6Q03XrvZ5gxY
nzsqvmSxmKDvi47Hlp863l4hNDRLPnkN9Kb73P2YHoZxESli7Lsgu5JyerWZYhuV
63yJkv7OkOdPDY5MjDe8t/5xuvMn6nkR27qowMKM6DzjyBfjgXrNFKJuvVQWvMU=
=EMOK
-----END PGP SIGNATURE-----

Francisco Souza

unread,
Feb 24, 2010, 12:15:09 PM2/24/10
to django...@googlegroups.com
2010/2/24 MrBiTs <mrbit...@gmail.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

> Mas assim como o Diego, fiquei curioso também pra saber a finalidade
> disso...

IMHO, não há finalidade nenhuma. Acho que

a) ela não conhece nada de modelagem de dados

Desculpa, é off-topic, mas na modelagem de dados existe o conceito de entidade fraca, que é uma entidade que possui como chave primária a chave primária de outra entidade, ou seja, uma chave estrangeira. É também uma forma de representar especialização/generalização (herança?) na modelagem relacional. Claro que isso pode gerar problemas, e que por questões como desempenho tendemos a desnormalizar o modelo, mas se o tema for apenas modelagem de dados, pode acontecer sim e não é por falta de conhecimento :)

Abraços,
Francisco Souza
http://www.franciscosouza.net
Twitter: @franciscosouza

Sani Naimayer

unread,
Feb 24, 2010, 12:24:51 PM2/24/10
to django...@googlegroups.com
Assino em baixo com o Francisco Sousa e afirmo que quem realmente não conhece sobre relacionamentos é o senhor MrBITs.

Att.

-------------------------------------------------------
Sani Naimayer
Analista de Tecnologia da Informação
Diretoria de Tecnologia da Informação
Secretaria de Ciência e Tecnologia - TO
(63) 3218 - 6316
-------------------------------------------------------



2010/2/24 Francisco Souza <fran...@franciscosouza.net>

MrBiTs

unread,
Feb 24, 2010, 12:28:22 PM2/24/10
to django...@googlegroups.com, Francisco Souza
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

> Desculpa, é off-topic, mas na modelagem de dados existe o conceito de


> entidade fraca, que é uma entidade que possui como chave primária a
> chave primária de outra entidade, ou seja, uma chave estrangeira. É
> também uma forma de representar especialização/generalização (herança?)
> na modelagem relacional. Claro que isso pode gerar problemas, e que por
> questões como desempenho tendemos a desnormalizar o modelo, mas se o
> tema for apenas modelagem de dados, pode acontecer sim e não é por falta
> de conhecimento :)

Levando-se em conta que Django trabalha efetivamente voltado a bases de dados, considero que isso seja meio off-topic, sim, mas é
tema de importância em qualquer lugar onde se trate de desenvolvimento de sistemas.

Entidades fracas dependem de outras e não tem atributos suficientes para formar uma chave primária. Então, a chave estrangeira PODE
(e deve) sim formar a chave primária da entidade fraca, mas jamais ser a sua única chave. Isso é simplesmente lógico.

- --

Um abraço


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iQEcBAEBCAAGBQJLhWG1AAoJEG7IGPwrPKWrTZ4H/jcVq7aVlikMM+GcrFpP6eUK
gtu16e0BvA8TNv8KNd0/oLevP2KZDAncFa3I7qARgyw+kD3iLxKkWcLKn4yyy0ZR
FZgyHQMocx++eE73xdof2r7dLHTXRSC+Z3yklksO2DezZXwUMG1cnBeMLC0c+aJZ
Pg5Sz+zH1ACS6OCllqyBVahHXjPUbPDWYsYjbAN+yOZWBpBj5FToCKFiu8Ko/070
LQUh99/b9+FmA1jXWj/rI/PVCFF4PpvrwnySxEONdkpwSvtYwNe+HDQ0s4GIXg0N
dXqSl+sJT0TtkajiK4FiD8HYxJNE04syJUDIAC9NMQLTvWB0ZvbND8wKtJpYzWo=
=JLr0
-----END PGP SIGNATURE-----

MrBiTs

unread,
Feb 24, 2010, 12:28:42 PM2/24/10
to django...@googlegroups.com, Sani Naimayer
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 02/24/2010 02:24 PM, Sani Naimayer wrote:
> Assino em baixo com o Francisco Sousa e afirmo que quem realmente não
> conhece sobre relacionamentos é o senhor MrBITs.
>
> Att.

Beleza. Grande contribuição à discussão.

- --

Um abraço


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iQEcBAEBCAAGBQJLhWHKAAoJEG7IGPwrPKWrH5AIALfiAvy4XqdzLxPkpDoZAlnl
lelc/a17g/9yIBbINOyhyRIQzWlZKrCyvTuiUEjBmVfhLSCk0d+1k85P8VvQQsV8
HiVxRZNfNvQv8sULV/MCwvxJ6wh6uOOtfL8mXqv8Vzf6EIqxhtQJ6flfbPTMWhzP
xZmOt0Nm+5tlTe9zeL51MzVGeHSG2rR8rd5lWsO0MnUvZMLu+pWHPCKwoDr3KvCw
azk1+LEl+fnJ/B6AYzLAGXej0GgcxOy1IT114+34b0+tjNkgTqmkdxgjUAyWomNO
kGzsGqY7HY4mfTqq25rVgwR+eG+ym1bTWw8ZhZA1+liILblj1jKhm0m+NWgIJPs=
=RkVn
-----END PGP SIGNATURE-----

Gileno Alves

unread,
Feb 24, 2010, 11:10:27 AM2/24/10
to django...@googlegroups.com
Talvez num relacionamento One-To-One onde uma das entidades é dependente da outra?

2010/2/24 Igor Sobreira <ig...@igorsobreira.com>

--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>



--
Abraços
Gileno Filho

Gileno Alves

unread,
Feb 24, 2010, 12:28:31 PM2/24/10
to django...@googlegroups.com
Foi como eu disse, possivelmente uma entidade dependente. Profile e User. So existe um Profile por User e Profile so pode existir se tiver um User associado.

2010/2/24 Sani Naimayer <sanina...@gmail.com>



--
Abraços
Gileno Filho

Fred Chevitarese

unread,
Feb 24, 2010, 12:51:33 PM2/24/10
to django...@googlegroups.com
Aposto que a autora do tópico não ta entendendo po$#@ nenhuma... rsrsrs

http://chevitarese.wordpress.com
Fred Chevitarese - GNU/Linux

Vinicius Mendes

unread,
Feb 24, 2010, 12:55:07 PM2/24/10
to django...@googlegroups.com
Vou abrir um off-topic aqui também e peço desculpas a quem se incomodar. Eu acho que a titude do MrBITs não é a atitude esperada pelos usuários da lista. Tudo bem que a Daiana não está fazendo uma série de perguntas simples e que são facilmente evitadas com buscas mais aprofundadas, mas não precisar julgá-la por isso. Não quer responder? Não responde. No máximo oriente de forma educada como ela pode proceder para evitar mais perguntas. Vamos evitar esse tipo de discussão onde um usuário fica atacando o outro. O objetivo da lista é discutir o framework e adquirir conhecimento, e não competir para saber quem tem mais conhecimentou ou atacar os colegas.

Espero que não me entendam mal e que essa discussão pare por aqui. Vamos voltar ao assunto da thread.

Eu particularmente não gosto da criação de entidades fracas. A não ser para questões de otimização, o que eu acho que não é o objetivo de alguém que procura frameworks orientados a desenvolvimento ágil como o django. Então eu recomendo que a Daiana reveja a sua modelagem.

______________________
Vinícius Mendes
Solucione Sistemas
http://solucione.info/



2010/2/24 Gileno Alves <gasc...@gmail.com>

MrBiTs

unread,
Feb 24, 2010, 1:32:46 PM2/24/10
to django...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 02/24/2010 02:28 PM, Gileno Alves wrote:
> Foi como eu disse, possivelmente uma entidade dependente. Profile e
> User. So existe um Profile por User e Profile so pode existir se tiver
> um User associado.

Veja como o exercício é difícil. Por que ter uma entidade Profile ? Que Profile seja simplesmente um atributo de User, economizando
assim recursos e simplificando muito o desenvolvimento da aplicação. Eu já imagino que vários "User" possam possuir o mesmo "Profile".

Carro e Motor. Só existe um Motor por Carro, e o Motor só pode existir se estiver associado a um Carro. Eu faria, nesse caso, Motor
ser um atributo de Carro, e não uma outra entidade, eliminando assim a necessidade de uma chave estrangeira.

Com certeza outros desenvolvedores vão imaginar que Carro-Motor seja um relacionamento N:N e irão criar uma entidade
Carro-Possui-Motor, que não terá chave primária e terá como chaves estrangeiras as chaves de Carro e Motor. Outros farão o par de FK
de Carro e Motor ser a chave primária da entidade C-p-M, e vai por aí.


- --

Um abraço


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iQEcBAEBCAAGBQJLhXDOAAoJEG7IGPwrPKWr+nUH/3R9cymRZ6TbSNKGW28aNfgu
RmUjK3ktZcHXNVwTB4WHeG7oHqZ+Ws+R7VZGuvpzr94fMjt5KIA0627UyGKGV3gB
XVTK9fuFe8X4R6eZYGbntq/R9GyZzbz604NWYoepXxKONL+6BgcIYrKGT9/KeN6D
KelX6yZn2kYAhMY3Kf6UUm1aDslpi1TY/bdKpasYNRGsfTEVoldzN8OCEWFXbRfB
opNfIiqyPd94s010u08AtOg7GiD7HJ3upg7CD1p22jdysYwXPkxiRAo/QmpaxA9q
6imqfsbnxbeJojeyr8rSPTVMMCYNcGwsDi9mGJWCKkJnCh+zd4RwSDwBKKTcgbI=
=TYu7
-----END PGP SIGNATURE-----

Rafael Sierra

unread,
Feb 24, 2010, 1:39:26 PM2/24/10
to django...@googlegroups.com
2010/2/24 MrBiTs <mrbit...@gmail.com>:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> On 02/24/2010 02:28 PM, Gileno Alves wrote:
>> Foi como eu disse, possivelmente uma entidade dependente. Profile e
>> User. So existe um Profile por User e Profile so pode existir se tiver
>> um User associado.
>
> Veja como o exercício é difícil. Por que ter uma entidade Profile ? Que Profile seja simplesmente um atributo de User, economizando
> assim recursos e simplificando muito o desenvolvimento da aplicação. Eu já imagino que vários "User" possam possuir o mesmo "Profile".

Profile, nesse contexto, não é um campo, é outra tabela que tem
atributos adicionais que não pertencem (independente do motivo) a
tabela User.

>
> Carro e Motor. Só existe um Motor por Carro, e o Motor só pode existir se estiver associado a um Carro. Eu faria, nesse caso, Motor
> ser um atributo de Carro, e não uma outra entidade, eliminando assim a necessidade de uma chave estrangeira.
>
> Com certeza outros desenvolvedores vão imaginar que Carro-Motor seja um relacionamento N:N e irão criar uma entidade
> Carro-Possui-Motor, que não terá chave primária e terá como chaves estrangeiras as chaves de Carro e Motor. Outros farão o par de FK
> de Carro e Motor ser a chave primária da entidade C-p-M, e vai por aí.
>
>
> - --
>
> Um abraço
>
> .0. MrBiTs - mrbit...@gmail.com
> ..0 GnuPG  - http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> 000 http://www.mrbits.com.br
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iQEcBAEBCAAGBQJLhXDOAAoJEG7IGPwrPKWr+nUH/3R9cymRZ6TbSNKGW28aNfgu
> RmUjK3ktZcHXNVwTB4WHeG7oHqZ+Ws+R7VZGuvpzr94fMjt5KIA0627UyGKGV3gB
> XVTK9fuFe8X4R6eZYGbntq/R9GyZzbz604NWYoepXxKONL+6BgcIYrKGT9/KeN6D
> KelX6yZn2kYAhMY3Kf6UUm1aDslpi1TY/bdKpasYNRGsfTEVoldzN8OCEWFXbRfB
> opNfIiqyPd94s010u08AtOg7GiD7HJ3upg7CD1p22jdysYwXPkxiRAo/QmpaxA9q
> 6imqfsbnxbeJojeyr8rSPTVMMCYNcGwsDi9mGJWCKkJnCh+zd4RwSDwBKKTcgbI=
> =TYu7
> -----END PGP SIGNATURE-----
>

> --
> Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

--
Rafael Sierra
http://blog.stiod.com

marcos thomaz

unread,
Feb 24, 2010, 6:59:40 PM2/24/10
to django...@googlegroups.com
Galera, na minha humilde opinião, acho que o que ela quer estaria mais no contexto de algo como:

Pessoa
-----------------
id
.... (demais atributos



PessoaFisica
---------------------
id_pessoa (fk e pk)
(demais atributos)

PessoaJuridica
---------------------
id_pessoa (fk e pk)
(demais atributos)

Para modelagem, o atributo id_pessoa, tanto da tabela PessoaFisica, quanto da tabela PessoaJuridica, seriam ao mesmo tempo fk e pk. Acho que é este efeito que ela quer replicar. O que faltou a ela foi indicar a existência de um atributo do tipo OneToOne, onde o django trata isso com mais transparência. Tive esses dias que replicar algo do tipo (em um banco de dados legado), e o que fiz foi simplesmente criar 3 forms, onde, se o usuário dissesse que era pessoa física, abria um determinado form, e se fosse jurídica abria outro. Fiz isso usando um formwizard. 
 
[]'s

Marcos Thomaz



De: MrBiTs <mrbit...@gmail.com>
Para: django...@googlegroups.com
Enviadas: Quarta-feira, 24 de Fevereiro de 2010 15:32:46
Assunto: Re: Chave primária e estrangeira
--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

Samuel Teixeira Santos

unread,
Feb 25, 2010, 5:34:22 AM2/25/10
to django...@googlegroups.com
se ainda estiver acompanhando depois da primeira resposta amigável do MrBits... hehehehe

Ivar Tini

unread,
Feb 26, 2010, 6:02:40 AM2/26/10
to Django Brasil
Srs.,

Olha o que uma pergunta gera...

>>>Tem como um campo ForeignKey ser Primarykey também?

>>>Cordiais saudações!

Resposta simples, sem juízo de valor:

Tem! É extatamente uma relação um pra um, em modelagem formal. No
Django usa-se o OneToOneField (corrijam lá a sintaxe, por favor).
Os casos para se usar são inúmeros, por exemplo:
Pessoa (tabela pai) e PF e PJ, tabelas filhas, o que aliás já foi
citado.
Conta (pai), conta corrente e conta poupança, filhas.
Estas tabelas (filhas) são chamadas de subcategorias em modelagem de
dados.

Meu off topic: a despeito da pergunta ser "seca" ela pode ser
exatamente o que é!
Quem sabe a moça não é a maior "Arquiteta de Dados" e simplesmente não
conhece Django?
Olha, sou um manezão ainda no Django, e sempre fui muito bem acolhido.
Esta é sem sombra de dúvida o melhor grupo que eu já vi. Portanto,
calm down guys.

Outra coisa... Façam o teste: para usar o get_profile(), que funciona,
pomos uma foreign key em outra tabela, apontando para User. Bom, se é
foreign key, nada impede de um User ter mais de um profile, certo?
Bom, não sei porque mágica o Django não permite a adição do "segundo"
profile ao User, e isso é bom! Mas, FORMALMENTE, este relacionamento,
por exemplo, deveria ser 1 para 1, e não 1 para N, que é o que é
sugerido com o uso de foreign key.

É, homens-aranhas... com o conhecimento...

Sani Naimayer

unread,
Feb 26, 2010, 6:34:31 AM2/26/10
to django...@googlegroups.com
A mágica é que ao tempo que ele fala que é uma fk e tb diz que essa fk deve ter unique. Ao meu ver, isso se configura igualmente a um relacionamento 1 para 1 pois, a fk sendo única, só poderá exisitr um único registro com essa fk.

Att



-------------------------------------------------------
Sani Naimayer
Analista de Tecnologia da Informação
Diretoria de Tecnologia da Informação
Secretaria de Ciência e Tecnologia - TO
(63) 3218 - 6316
-------------------------------------------------------


2010/2/26 Ivar Tini <ivar...@gmail.com>

Ivar Tini

unread,
Feb 26, 2010, 6:47:13 AM2/26/10
to Django Brasil
Bingo. Sem mágica! Redundante, mas sem mágica!
Mas no meu modelo Pessoa (que é meu profile) eu não explicitei que
minha foreign key que aponta para User é UNIQUE. Ele põe isso no
tratamento do User... acho. A mágica deve estar na variavel
AUTH_PROFILE_MODULE do settings.
Obrigado, Sani

On 26 fev, 08:34, Sani Naimayer <saninaima...@gmail.com> wrote:
> A mágica é que ao tempo que ele fala que é uma fk e tb diz que essa fk deve
> ter unique. Ao meu ver, isso se configura igualmente a um relacionamento 1
> para 1 pois, a fk sendo única, só poderá exisitr um único registro com essa
> fk.
>
> Att
>
> -------------------------------------------------------
> Sani Naimayer
> Analista de Tecnologia da Informação
> Diretoria de Tecnologia da Informação
> Secretaria de Ciência e Tecnologia - TO
> (63) 3218 - 6316
> -------------------------------------------------------
>

> 2010/2/26 Ivar Tini <ivar.t...@gmail.com>

Rafael Otero

unread,
Feb 27, 2010, 12:46:23 PM2/27/10
to django...@googlegroups.com

Pessoal, também acho que ela não sabe sobre modelagem de dados no django,porque se ela soubesse ela não estava perguntando.
A comunidade foi feita para os usuários cooperarem entre si, e com esse tópico deu para perceber que a comunidade não esta nem um pouco madura comparado com as outras.
Cade o admin para banir esses usuário que ofendem os novos membros da comunidade?
Se essa moça for uma nova usuária do django, pode ter certeza que ela nunca mais vai postar suas duvidas aqui e ela vai escolher uma tecnologia que a comunidade é madura como a do Java, o GUJ.
obrigada pela atenção.

Jonas Peters

unread,
Mar 1, 2010, 6:36:51 AM3/1/10
to django...@googlegroups.com
Isso eh uma verdade, soh pq a moça não entende muita coisa de programação ou modelagem, não eh necessario ofendela,
pq eu creio q se existe um grupo sobre django eh para ajudar e não criticar, e os moderadores do grupo nem se manifestam
para tomar uma atitude...

Daiana Marta Marasquin

unread,
Mar 15, 2010, 10:35:03 AM3/15/10
to django...@googlegroups.com
Um século depois...

Na realidade o que eu queria era relacionar dois ou mais campos na tabela, para fazer uma combinação entre valores, porém esses valores não podiam se repetir, ou seja, chave composta.
Em banco, sabe-se que isso funciona.
Em django sabe-se que não (pelo menos depois de testes descobre-se).
Em algumas pesquisas que eu fiz em relação à class Meta, acabei por descobrir que para fazer valores combinados não se repetirem num campo, basta usar: unique_together = (('campo1', 'campo2'),)

Peço sinceras desculpas por ter sido "seca" na pergunta e por não ter retornado antes.
E agradeço à todos aqueles que me retornaram com resposrtas válidas.
Minha intenção não era causar transtorno algum.

Obrigada!
Atenciosamente,
Daiana.

Christiano Guimarães de Araújo

unread,
Dec 7, 2013, 5:49:06 AM12/7/13
to django...@googlegroups.com, dailoi...@gmail.com
 Se toda a chave primária for, também, uma 
chave estrangeira referenciando uma única 
tabela, então a entidade em questão 
especializa a entidade referenciada.
Reply all
Reply to author
Forward
0 new messages