【发布时间】:2018-01-03 15:42:36
【问题描述】:
在旧项目中,如果开发人员忘记了查询条件中的 project_id,则会显示所有项目的行,而不是他们应该看到的单个项目。例如对于“评论”:
comments [id, project_id, message ]
如果您忘记按 project_id 过滤,您会看到所有项目。这被测试发现了,有时没有,但我宁愿做一个预防 - 开发人员应该直接看到“错误/空”!
为了解决这个问题,产品经理坚持为 cmets 使用单独的表,如下所示:
project1_comments [id,message]
project2_comments [id,message]
在这里,如果您忘记了项目/表名称,如果某些东西仍然通过测试并被部署,您将一无所获或出现错误。
然而,困难在于关联的表格。链接到“评论”的示例“文件”:
files [ id, comment_id, path ]
3, 1, files/foo/bar
project1_comments
id | message
1 | Hello World
project2_comments
id | message
1 | Bye World
这会变成每个项目的数据库,这似乎有点过头了。
另一种可能性,如何在 Comments 模型上添加 Behavior 以确保任何查找/选择查询确实包含外键,例如 - project_id?
非常感谢。
【问题讨论】:
标签: cakephp cakephp-3.0