Этот вопрос может быть крайне наивным, и в этом случае я прошу прощения. Я пытаюсь узнать больше об администрировании базы данных, и я не уверен, какой выбор предпочтителен в этом случае. У меня есть модель, которая может быть легко разделена на две таблицы. Он содержит контактную информацию и информацию о профиле для компаний.
class Company(models.Model):
name=models.CharField(max_length=100)
street_address=models.CharField(max_length=100, blank=True)
city=models.CharField(max_length=100, blank=True)
state=models.CharField(max_length=100, blank=True)
zipcode=models.IntegerField(max_length=5, blank=True)
input_level=models.CharField(choices=((0,'Less',),(1,'More'))
expense_min=models.IntegerField(blank=True)
expense_max=models.IntegerField(blank=True)
health_value=models.IntegerField(choices=[(i+1,i+1) for i in range(5)], blank=True)
group_size=models.IntegerField(blank=True)
comment=models.TextField(max_length=500, blank=True)
created=models.DateField(auto_now_add=True)
registered=models.BooleanField(default=False)
Несмотря на то, что столбцов довольно много, я не вижу явных причин разбивать их на связанные таблицы. Информация, связанная с профилем (ниже почтового индекса) может часто меняться, хотя информация, связанная с адресом, вероятно, останется прежней. Я предполагаю, что стоимость объединений перевесит стоимость обновления / вставки в таблицу с множеством строк.
Есть ли здесь основное правило или мне нужно просто его профилировать?