Cordiais saudações!
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/>
Tem como um campo ForeignKey ser Primarykey também?
Cordiais saudações!
Tem como um campo ForeignKey ser Primarykey também?
> 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-----
2010/2/24 MrBiTs <mrbit...@gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256IMHO, não há finalidade nenhuma. Acho que
> Mas assim como o Diego, fiquei curioso também pra saber a finalidade
> disso...
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 :)
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
.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)
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-----
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
.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)
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-----
--
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/>
______________________
Vinícius Mendes
Solucione Sistemas
http://solucione.info/
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
.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-----
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
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...
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>