我想問一些關於這種情況的問題。 據說我有3張桌子。最佳做法布爾與SQL中的整數
> class Event(models.Model):
> class Meta:
> verbose_name = _('Event')
> verbose_name_plural = _('Events')
>
> def __str__(self):
> return self.name
>
> name = models.CharField(max_length = 255, null = True)
> description = models.TextField(null=True)
>
> organizer = models.CharField(max_length=255, null=True)
> date_from = models.DateTimeField(null=True)
> date_to = models.DateTimeField(null=True)
>
> address = models.ForeignKey('location.Address', null=True, blank=True, related_name="event_address")
> active = models.BooleanField(default=False)
> class CityNomad(models.Model):
> class Meta:
> verbose_name = _('City Nomad')
> verbose_name_plural = _('City Nomads')
>
> uid = models.IntegerField()
> event = models.ForeignKey('event.Event', null=True, blank=True, related_name='citynomad_event')
> class YourSingapore(models.Model):
> class Meta:
> verbose_name = _('Your Singapore')
> verbose_name_plural = _('Your Singapore')
>
> event = models.ForeignKey('event.Event', null=True, blank=True, related_name='citynomad_event')
> ys_priority = models.IntegerField()
那麼我使用Django的REST框架的意見,將檢索兩種情況下,僅Travelrave事件,然後只CityNomad事件。
所以我想通過以下三種方式:
1.插入事件模型兩列。
is_travelrave = models.BooleanField()
is_citynomad = models.BooleanField()
2.插入單個整數
event_identifier = models.IntegerField()(鑑定爲1 travelrave,2作爲citynomad)
3.創建一個表稱爲event_identifier(具有id和event_identifier_name)
event_identifier = models.ForeignKey( 'event_identifier')有太多的布爾列
會影響性能? 是否有外鍵冗餘?
哇謝謝!不知道django能做到這一點,非常感謝你! – dtjokro 2014-10-28 09:24:40