1

dbase 関係のセットアップ方法に関する質問 (初心者、これは些細なことかもしれません)

django チュートリアル (投票、選択肢) に従いました。1 つの投票には多くの選択肢があるため、多くの選択肢が 1 つの投票を指していることを理解しました。

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

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

質問: 場所、人物などのデータベースがあります (複数のテーブル)。テーブルのサブセットに同様のフィールドがあります。1 つ以上の phone_number(s) を持つ場所が必要です。人に1つ以上の電話番号を持たせたい. 他のテーブルに 1 つ以上の phone_number(s) が必要な場合があります。

Poll/Choice アプローチに従った場合、問題は以下の 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(???)
      ...

Person と Place の両方が同じ基本クラスから継承されるように、継承の使用を検討しました。しかし、phone_number 以外にも、同様の状況にあり、テーブルの異なるサブセットにまたがる他のフィールドがあるかもしれません。例えば

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

これらのタイプの関係を正しく設計する方法についてのアドバイスをいただければ幸いです。ありがとうございました。

4

2 に答える 2

1

Generic Relationsを探していると思います。ここもまた

于 2009-02-11T16:50:45.083 に答える
0

ContenTypeアプリ、特にGeneric Relationsを確認してください。基本的に、人物/場所オブジェクトのタイプと ID の両方を PhoneNumber オブジェクトに格納します。

于 2009-02-11T16:52:18.027 に答える