Одна общая таблица документов против отдельных таблиц для нескольких сущностей: масштабируемость, оптимизация и удобство обслуживания
У меня есть три таблицы: инспекции, аварии и претензии. Каждая из этих таблиц имеет отношение "один-ко-многим" с таблицей документов, в которую пользователи могут загружать документы, относящиеся к каждой записи. Процесс загрузки документов одинаков во всех трех таблицах. Я задаюсь вопросом, нужно ли создать: 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)