Здравствуйте, есть примерно такая модель:
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), что лучше и почему?