2017-03-10 3 views
0

私はdjango restサービスを開発しています。私と私の同僚は現在、djangoモデルについて議論しています。私たちはReportという名前のモデルを持っています。このモデルには、場所(経度、緯度、住所、都市、郵便番号)に関するフィールド/フィールドが含まれています。私は可読性よりもパフォーマンスを犠牲にする必要があります

私は場所を別のモデルにしたいと思っていますか?他のモデルもこの位置モデルを使用することができる。ここで私が何を意味するかです:

class Location(models.Model): 
    address = models.CharField(max_length=200) 
    city = models.CharField(max_length=100) 
    postal_code = models.CharField(max_length=10) 
    latitude = models.FloatField() 
    longitude = models.FloatField() 


class Report(models.Model): 
    user = models.ForeignKey(User) 
    description = models.CharField(max_length=500) 
    datetime = models.DateTimeField(auto_now_add=True) 
    location = models.OneToOneField(Location) 

それは私と他のモデルにはるかにきれいに見えるので、私はレポート上のすべてのクエリのための場所で別のクエリが存在しなければならないことを知っているが、私はそれはそれは価値があると考えることができますまた、フィールドをコピーせずにこのLocationモデルを使用してください。

ありがとうございました

+1

これは問題ありません。関連するモデルを使ってクエリを実行するときに 'select_related'または' prefetch_related'を使うだけです –

答えて

0

私はあなた自身であなたの質問に答えたと思います! Locationモデルを再利用したい場合は、それを別のモデルに入れても大丈夫です!

関連する問題