【发布时间】:2011-02-04 18:35:42
【问题描述】:
我有一个使用 45 个表的 PHP/symfony 项目。我正在将其移植到 Python/Django。
多年来我一直坚信,您应该将项目拆分为一堆小文件,而不是几个大文件。据我了解,相信这并不是一件奇怪的事情。在 Rails 和 symfony 中,有一个每个文件一个模型的约定。然而,在 Django 中,似乎大多数开发人员将每个应用程序的所有模型都放在一个文件中。
如果您的应用程序都足够小,这对我来说很有意义。不过,对于大型应用程序来说,这对我来说没有意义,而且我拥有的至少是一个大型应用程序。
在我的项目使用的 45 个表中,有 35 个密切相关。我有一个从 CSV 文件导入数据的脚本。对于每个 CSV 文件中的每一行,我一举将 50-80 条数据保存到 30-35 个不同的表中。
也许我只是以错误的方式思考这个问题,但是当我几乎所有的表都密不可分地联系在一起时,将我的项目分成 6 或 7 个不同的应用程序对我来说似乎非常奇怪。当我触摸一张桌子时,我会触摸所有 35 张桌子。划定必须是任意的。那有什么意义呢?
如果我表现得有偏见,请原谅我,因为我确实有偏见。我在 symfony 中没有这个问题,我也不会在 Rails 中遇到这个问题。 (我选择 Django 是因为 GeoDjango 和 Python 的 GIS 功能。)
- 在一个完美的世界中,每个文件都有一个模型。
- 如果我尝试为每个文件创建一个模型,则会遇到循环引用问题。
- 我可以通过将我的所有模型放在一个文件中来避免循环引用问题,但我觉得这是不对的。
- 我可以通过将所有模型拆分为单独的应用程序来避免将它们放在同一个文件中,但是为了得到足够小的应用程序,我必须以任意(因此毫无意义)的方式分解我的项目。
我该怎么办?
【问题讨论】:
标签: django