我有兩個實體。首先被稱爲「狀態」:Symfony 2&Doctrine 2:複雜的關係beetwen實體
<?php
class Status {
protected $id;
protected $type = null; // standarized type of status (f.e. "locked", "disabled")
protected $value = true; // true or false (value of status)
protected $change_reason = null;
protected $changed_by;
protected $changed_at;
}
我已經清除註解以提高可讀性。
而第二個叫做例如。帳戶。因爲帳戶不是唯一使用狀態的實體,所以狀態和任何其他「有狀態的」實體(我認爲)應該是多對多的。對於帳戶,將有連接表account_status等
另外一個狀態只屬於一個實體。
這一切都適用於該配置,但我真的不知道如何檢索具有最新狀態的帳戶列表。
我寫了一個SQL查詢來檢索實際狀態:
SELECT * FROM (
SELECT t.type, t.value
FROM status AS t
ORDER BY t.changed_at DESC
) AS t1 GROUP BY t1.type
我的問題是:
- 是這種想法正確的呢?
- 如何檢索包含所有最新狀態的帳戶列表?
對不起,我可憐的英語。
編輯: 我只想得到一個帳號,加入其最新的狀態,然後讓他們乾脆:$任務 - >的getStatus(「突出」)來獲得的最新的(最小的)狀態的值類型的「突出」
EDIT2: 理想會被給定類型的狀態來還是要排序的能力和過濾
您可以將lastStatus關係添加到每個帳戶 – WizardZ 2012-08-01 17:13:10
每個帳戶可以有多個狀態,例如。 「鎖定」,「過期」等...更好的例子是一個任務 - 「關閉」,「突出顯示」。 – Krystian 2012-08-01 17:43:28