【发布时间】:2013-03-06 20:58:26
【问题描述】:
On this question 我收到了一个效果很好的答案。我现在想知道是否有可能更好的结构。
我有两张桌子。
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 的最新状态记录。
【问题讨论】: