应用程序有多种类型的对象(文章、歌曲、配置文件等),每个对象都有自己的表。所需的功能是允许用户对这些对象发表评论。考虑到的最佳方法是什么:
- 查找延迟(检索对象及其所有评论)
- 数据的完整性
- 可维护性
选项包括:
Django contrib 评论框架,在删除操作时触发信号,调用例程从评论表中删除评论。
数据库中带有触发器的 Django contrib 评论框架(需要内容类型 PK/表名之间的映射)。
为每个对象类型提供一个带有外键的注释表。
为每个对象类型提供一个表来表示它的评论,并使用 Django 评论框架。删除框架的评论表并使用 UNION 创建一个视图,以从评论表中检索所有评论(包括 ON UPDATE/INSERT/DELETE 触发器),模仿原始评论框架表的行为。