Я работаю на веб-сайте Job Portal и у меня возникли вопросы. Интересно, как правильно использовать отношения в моем случае?
Например:
У меня есть CompanyProfile, где у компании может быть несколько местоположений.
У меня есть работа, которая также может иметь несколько местоположений.
У меня естьУчащийся и учащийся могут составить биографические данные SkillSet, Education и Experience.
Вот что я имею сейчас: Класс CompanyProfile Класс местоположения, где CompanyProfile - это иностранный ключиз. Класс Job, где CompanyProfile и Location находится в предопределенном состоянии. Класс Skillset, Education и Experience все 3 из них имеют внешний ключ для CV.
CompanyProfile
class CompanyProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, related_name='company_profile')
company_name = models.CharField(max_length=30)
Местоположение
class Location(models.Model):
company = models.ForeignKey(CompanyProfile, on_delete=models.CASCADE)
address = models.CharField(max_length=100, null=True)
zip_code = models.CharField(max_length=10, null=True)
city = models.CharField(max_length=30, null=True)
CV
class Cv(models.Model):
user = models.ForeignKey(StudentProfile, on_delete=models.CASCADE)
Образование, опыт и навыки все одинаковые
class Education(models.Model):
cv = models.ForeignKey(Cv, on_delete=models.CASCADE)
...
... more fields.
Мой вопрос. Это правильный путь, или я должен поместить иностранный ключ в классе CompanyProfile в Location. И стоит ли мне вставлять в CV 3 иностранные ключи образования, опыта и навыков, или код выше верен? Я застрял на этом, потому что каждый раз, когда я мигрирую, я могу мигрировать, но иногда я получаю что-то вроде «Нет значения по умолчанию для ForeignKey, либо задайте значение по умолчанию NULL, либо измените модель».