没有严格的规则,但我认为最好在更专业的应用程序方面犯错.理想情况下,应用程序应该只处理一个功能问题:即"标记"或"评论"或"auth/auth"或"帖子".这种类型的设计还将帮助您重用可用的开源应用程序,而不是重新发明轮子(即Django带有auth和评论应用程序,django-tagging或django-taggable几乎可以肯定地做你需要的等等).
通用外键可以帮助您分离应用程序,例如可能应用于其他几个应用程序的模型的标记或注释.
我将告诉你我是如何解决这个问题的:我通常坐在一张纸上,画出方框(功能)和箭头(功能之间的相互依赖关系)。我确信有一些方法或其他东西可以帮助你,但我的方法通常对我有用(YMMV,当然)。
不过,了解网站应该是什么是基本的。;)