Хотя существует общее мнение о том, что наследование на несколько таблиц не является очень хорошей идеей в долгосрочной перспективе (Jacobian, Others), мне интересно, могут ли в некоторых случаях «дополнительные объединения», созданные django во время запросов, стоило того.Jango's MutiTable Vs. Аннотация Наследование
В моей базе данных имеется единственный источник правды. Скажем, для объектов Person, которые идентифицируются с использованием идентификационного номера и типа идентификации. Например. Идентификационный номер 222, Тип паспорта.
class Person(models.Model):
identity_number = models.CharField(max_length=20)
identity_type = models.IntegerField()
class Student(Person):
student_number = models.CharField(max_length=20)
class Employee(Person):
employee_number = models.CharField(max_length=20)
В абстрактном наследовании любая модель подкласса человека, например. Студент, Родитель, руководитель, сотрудник и т.д. унаследовав от человека абстрактного класса будет иметь identity_number
& identity_type
хранятся в соответствующих таблицах
В наследованию за несколькими столами, так как все они имеют тот же стол, я могу быть уверен, что если я создаю уникальное ограничение на оба столбца в модели Person, а затем нет дубликатов будет существовать в базе данных.
В абстрактном наследовании, чтобы избежать дубликатов в базе данных, нужно было бы добавить дополнительную дополнительную логику проверки в приложение, что также привело бы к снижению производительности, означая, что он отменяет «дополнительное соединение», которое django имеет отношение к конкретному наследование?
Мне нравится указатель на то, что OO является абстракцией, которая плохо относится к реляционным базам данных, тогда она напоминает мне сосредоточиться на данных и том, как это связано .. для текущего проекта я собираюсь с вариантом один .. – lukik