У меня есть проект, который я написал в PHP/symfony, который использует 45 таблиц. Я переношу его в Python/Django.
Там вера, которую я провел годами, вы должны разделить свои проекты на кучу небольших файлов, а не на несколько огромных файлов. Из того, что я понимаю, это не странно верить. В Rails и symfony существует соглашение с одной моделью для каждого файла. Однако в Django кажется, что большинство разработчиков помещают все модели приложений в один файл.
Это имеет смысл для меня, если ваши приложения достаточно малы. Для меня это не имеет смысла для больших приложений, и у меня есть хотя бы одно большое приложение.
Из 45 таблиц, которые использует мой проект, 35 тесно связаны. У меня есть script, который импортирует данные из файлов CSV. Для каждой строки в каждом файле CSV я сохраняю 50-80 единиц данных в 30-35 разных таблиц одним махом.
Возможно, я просто думаю об этом неправильно, но мне показалось бы невероятно странным разделить мой проект на 6 или 7 различных приложений, когда почти все мои таблицы неразрывно связаны. Когда я касаюсь одного стола, я касаюсь всех 35 таблиц. Разграничения должны быть произвольными. В чем смысл этого?
Пожалуйста, простите меня, если я оторвусь от смещения, потому что я, конечно, предвзятый. У меня нет этой проблемы в symfony, и я не буду иметь ее в Rails. (Я выбрал Django из-за возможностей геоинформации GeoDjango и Python.)
- В идеальном мире у меня будет одна модель для каждого файла.
- Если я попытаюсь использовать одну модель для каждого файла, я получаю круговые эталонные проблемы.
- Я мог бы избежать проблем с круговой ссылкой, поставив все мои модели в один файл, но мне это не нравится.
- Я мог бы не помещать все мои модели в один и тот же файл, разделив их на отдельные приложения, но для того, чтобы в итоге получить достаточно небольшие приложения, мне пришлось бы разбивать мой проект произвольными (и, следовательно, бессмысленными) способами.
Что мне делать?