@redduckrobot

Стоит ли объединять две таблицы с разными ForeignKey в одну, но при этом один из ForeignKey будет null?

Здравствуйте, есть примерно такая модель:
class Factory(models.Model):
    name = models.CharField(max_length=126)
    worker = models.ForeignKey(Worker, null=True)
    manager = models.ForeignKey(Manager, null=True)

Суть ее заключается в том что у Factory может быть либо worker, либо manager, т.е. одновременно два ForeignKey не задействованы. Один мой знакомый порекомендовал не делать так, поскольку для ForeignKey = null так же выделяется память (почему так я не понял) и с точки зрения проектирования не очень это хорошо. Т.е. должно быть вот так:

class FactoryWorker(models.Model):
    name = models.CharField(max_length=126)
    worker = models.ForeignKey(Worker, null=True)

class FactoryManager(models.Model):
    name = models.CharField(max_length=126)
    manager = models.ForeignKey(Manager, null=True)


Эти модели я привел в качестве примера и в них не важны сущности. Подскажите, пожалуйста, с точки зрения производительности и выделения памяти (если оно действительно происходит при значении ForeignKey = null), что лучше и почему?
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы