Mysql SQL中布尔与整数的最佳实践

Mysql SQL中布尔与整数的最佳实践,mysql,sql,django,django-models,Mysql,Sql,Django,Django Models,我想问一些关于这个案例的问题。 我大概有三张桌子 > class Event(models.Model): > class Meta: > verbose_name = _('Event') > verbose_name_plural = _('Events') > > def __str__(self): > return self.name > > name

我想问一些关于这个案例的问题。 我大概有三张桌子

> 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)


然后我使用django rest框架获取视图,该框架将检索任意一个事件、仅Travelrave事件,然后检索仅CityNode事件

所以我想到了三种方法:

1。在事件模型上插入两列。

is_travelrave=models.BooleanField()

is_citynomad=models.BooleanField()

2。插入单个整数

event_identifier=models.IntegerField()(将1标识为travelrave,2标识为CityNode)

3。创建一个名为event\u identifier的表(带有id和event\u identifier\u name)

event\u identifier=models.ForeignKey('event\u identifier')

布尔列过多会影响性能吗?
外键是否冗余?

您不必手动执行任何操作

如果要获取所有CityNode事件,可以按如下方式获取:

Event.objects.filter(citynomad_event__isnull=False)

但是您必须注意相关的_name属性。在
YourSingapore
-模型中,它与
CityNomad
相关的\u name
-属性相同。

哇,谢谢!我不知道django能做到这一点,非常感谢!
> 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()
Event.objects.filter(citynomad_event__isnull=False)