【发布时间】:2014-10-28 07:12:14
【问题描述】:
我想就这种情况提出问题。 假设我有 3 张桌子。
> 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 框架的视图,它将检索 Event、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')
布尔列过多会影响性能吗? 有外键是多余的吗?
【问题讨论】:
标签: mysql sql django django-models