こんにちは、データベースにいくつかのフィールドを設定する方法について質問したいと思います。私は3つのモデルを持っています
モデル
class Customer(models.Model):
#fields
class Entry(models.Model):
#fields
customer = models.ForeignKey(Customer, related_name='entries')
class EntryHistory(models.Model):
#fields
entry = models.OneToOne(Entry, related_name='history')
特定の顧客のすべてのエントリ履歴を取得したいと考えています。そうじゃないですか
for entry in customer.entries:
try:
history.append(entry.history)
except entry.history.related.models.DoesNotExist:
pass(or continue?)
私の考えでは、すべての顧客のエントリを検索し、リストに履歴が追加されているかどうかを調べます。EntryHistory に顧客フィールドを追加したほうがよいでしょうか?クエリはより速くなりますか? これは、私のプロジェクトでは頻繁に行われるトランザクションです。しかし、 EntryHistory モデルに顧客を追加することは冗長であることを知っています。なぜなら、入力フィールドから顧客が誰であるかを知っているからです。たとえば、顧客が多く、それぞれに多くのエントリがある場合、心配する必要がありますか?