Optimal SQL Design: Boolean Fields vs Integer Identifiers

Evaluating event categorization methods: two booleans, one numeric field, or a separate lookup table. Is extra boolean overhead or foreign key design less efficient? Example:

class Meetup(models.Model):
    title = models.CharField(max_length=150, blank=True)
    flag_active = models.BooleanField(default=False)
    tag_category = models.IntegerField()

class UrbanExplorer(models.Model):
    identifier = models.IntegerField()
    meetup = models.ForeignKey(Meetup, on_delete=models.CASCADE, related_name='explorer_meetup')

class CityInsider(models.Model):
    meetup = models.ForeignKey(Meetup, on_delete=models.CASCADE)
    insider_rank = models.IntegerField()

The choice between boolean fields and integer identifiers largely depends on the specific requirements of the application and the expected future expansion of the model. In my experience, starting with booleans makes sense for binary decisions due to their simplicity and lower overhead. However, when the potential for additional categories exists or when data integrity and normalization are a concern, an integer field that references a lookup table can be more scalable. This approach allows for easier modifications and the possibility of more nuanced categorizations without significantly impacting performance.

i lean towards using the int lookup, it offer better scalability even if booleans seem simpler at first. have u experianced any issues when adding new categories down the line?