私が物件を持っていて、それが売りに出されたり、賃貸されたりする可能性があるとしましょう(それぞれに関連する価格があります)、モデルをどのように構成する必要がありますか?
A:
class Property(models.Model):
name = models.CharField()
sale_price = models.DecimalField(max_digits=14, decimal_places=2)
rent_price = models.DecimalField(max_digits=14, decimal_places=2)
B:
class Property(models.Model):
name = models.CharField()
CATEGORY_CHOICES = (
(u'sale', u'Sale'),
(u'rent', u'Rent'),
)
class Category(models.Model):
property = models.ForeignKey('Property')
name = models.CharField(max_length=25, choices=CATEGORY_CHOICES)
price = models.DecimalField(max_digits=14, decimal_places=2)
C:
class Property(models.Model):
name = models.CharField()
class Sale(models.Model):
property = models.ForeignKey('Property')
price = models.DecimalField(max_digits=14, decimal_places=2)
class Rent(models.Model):
property = models.ForeignKey('Property')
price = models.DecimalField(max_digits=14, decimal_places=2)
販売/賃貸の特定のフィールドを追加したい場合は、Cの方が柔軟性が高いと思います。構造Bの方がクエリに適しているようですが、よくわかりません。
私がCと一緒に行ったとすると、たとえば、販売中の物件をどのように照会しますか?