在这个问题上,我收到了一个很好的答案。我现在想知道是否有可能更好的结构。
我有两张桌子。
Projects : id, title
Status : project_id, status_id, created(DATETIME)
在获取我的项目状态的那一刻,我获取项目 ID 并根据项目 ID 从状态表中拉出最新的行。要获得这一最新行是相当麻烦的。
我应该将架构更改为此吗?
Projects : id, title, current_status_id(FK)
Status : id(PK), project_id, status_id, created(DATETIME)
然后我可以用 FK 加入表格并获得我想要的行而不寻找最新的?
编辑:
所以我想要这样的东西
SELECT * FROM projects
LEFT JOIN status on projects.id = status.project_id
WHERE projects.id = 1
但我只想要状态表中的最新记录。
编辑 2:
所以我想要这样的东西
SELECT * FROM projects
LEFT JOIN status on projects.id = status.project_id
但是对于每个返回的项目,只能从 status 中获取该 project_id 的最新状态记录。