Одна общая таблица документов против отдельных таблиц для нескольких сущностей: масштабируемость, оптимизация и удобство обслуживания

У меня есть три таблицы: инспекции, аварии и претензии. Каждая из этих таблиц имеет отношение "один-ко-многим" с таблицей документов, в которую пользователи могут загружать документы, относящиеся к каждой записи. Процесс загрузки документов одинаков во всех трех таблицах. Я задаюсь вопросом, нужно ли создать: A) Одну общую таблицу документов, в которой хранятся документы для всех трех организаций, с внешним ключом, ссылающимся на соответствующую таблицу (например, inspection_id, accident_id или claim_id). или Б) Отдельные таблицы документов для каждой сущности, например, inspection_documents, accident_documents и claim_documents. [ введите описание изображения здесь](https://i.sstatic.net/gw1393oI.png)

Какой подход лучше с точки зрения: Масштабируемость: Будет ли один подход эффективнее справляться с большими объемами данных и пользовательским трафиком? Оптимизация базы данных: Какой подход приведет к более быстрому выполнению запросов и лучшему поиску данных? Удобство обслуживания: Каким подходом будет легче управлять, обновлять и расширять в долгосрочной перспективе? Пожалуйста, предоставьте свои соображения и рекомендации, основанные на вашем опыте работы с подобными сценариями.

вот мой models.py

one thing i can try is this but i don't know if it's right 

class SafetyDocument(models.Model):
    inspection = models.ForeignKey(
        SafetyInspection, on_delete=models.CASCADE, related_name='inspection_documents'
    )
    accident = models.ForeignKey(
        SafetyAccident, on_delete=models.CASCADE, related_name='accident_documents'
    )
    claim = models.ForeignKey(
        SafetyClaim, on_delete=models.CASCADE, related_name='claim_documents'
    )
    document = models.FileField(upload_to='safety/documents/')
    date_created = models.DateField(auto_now=True)
    description = models.CharField(null=True, max_length=100, blank=True)
    
Вернуться на верх