この質問は非常に素朴なものかもしれません。この場合、私はお詫び申し上げます。私はデータベース管理についてもっと学びたいと思っています。この場合、どの選択肢が望ましいかは不明です。私は簡単に2つのテーブルに分割できるモデルを持っています。会社の連絡先情報とプロフィール情報が含まれています。より効率的な外部キーの関係または大きなテーブル(問題を考えて)?
class Company(models.Model):
name=models.CharField(max_length=100)
street_address=models.CharField(max_length=100, blank=True)
city=models.CharField(max_length=100, blank=True)
state=models.CharField(max_length=100, blank=True)
zipcode=models.IntegerField(max_length=5, blank=True)
input_level=models.CharField(choices=((0,'Less',),(1,'More'))
expense_min=models.IntegerField(blank=True)
expense_max=models.IntegerField(blank=True)
health_value=models.IntegerField(choices=[(i+1,i+1) for i in range(5)], blank=True)
group_size=models.IntegerField(blank=True)
comment=models.TextField(max_length=500, blank=True)
created=models.DateField(auto_now_add=True)
registered=models.BooleanField(default=False)
かなりの数の列がありますが、これを関連する表に分割する明白な理由はありません。住所関連の情報はおそらく同じままになりますが、プロファイル関連の情報(郵便番号の下)は頻繁に変更されることがあります。私は、ジョインのコストは、多くの行を持つテーブルに更新/挿入するコストを上回ると考えています。
基本的なルールはありますか、それともプロファイルするだけですか?
素晴らしい答えbash。どうもありがとう。 – Ben