design de banco de dados - - Django mutiple tabelas exigem 1+ phone_number (s)

votos
1

Pergunta sobre como relacionamentos configuração dbase (novato, isso pode ser trivial)

Seguiu o tutorial do Django (Poll, Opções); entendido que uma pesquisa tem muitos escolha (s), por conseguinte, muitos escolha (s) apontam para um único Poll.

   class Poll(models.Model):
      question = models.CharField(max_length=200)
      ...

   class Choice(models.Model):
      poll = models.ForeignKey(Poll)
      ...         

Pergunta: Eu tenho um banco de dados com lugares, pessoas, etc. (mutiple tabelas). Um subconjunto das minhas tabelas têm um campo similar. Eu quero um lugar para ter 1+ phone_number (s). Quero uma pessoa ter 1+ phone_number (s). I pode querer outras mesas ter 1+ phone_number (s).

Se eu tivesse seguido a abordagem Poll / Escolha, em seguida, o meu problema é indicado pelos pontos de interrogação mostrados abaixo em PhoneNumber.

   class Person(models.Model):
      firstname = models.CharField(max_length=20)
      ...

   class Place(models.Model):
      description = models.CharField(max_length=200)
      ...

   class PhoneNumber(models.Model):
      ??? = models.ForeignKey(???)
      ...

Eu tenho considerado usando herança de modo que ambos Pessoa e Lugar herda da mesma classe base. Mas pode ter outros campos além phone_number para o qual eu tenho uma situação semelhante, e que abrangem um subconjunto diferente de tabelas. Por exemplo

               phone_number(s)     comments
               ---------------     --------
Person         yes                 no
Place          yes                 yes
Contract       no                  yes
...

Qualquer conselhos sobre como projetar corretamente esses tipos de relacionamentos seria muito apreciada. Obrigado.

Publicado 11/02/2009 em 17:40
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Eu acho que você está procurando relações genéricas . aqui também

Respondeu 11/02/2009 em 17:50
fonte usuário

votos
0

verifique ContenType aplicativo e, especificamente, relações genéricas . Basicamente, você armazenar o tipo eo id do objeto pessoa / lugar no objeto PhoneNumber.

Respondeu 11/02/2009 em 17:52
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more