2013-07-19 152 views
2

我正在開發一個symfony 2項目,並想知道我的實體的正確關係。實體關係

我有可以擁有很多筆記本的用戶,筆記本可以包含很多筆記。

筆記本綁定到用戶,其用戶標識作爲外鍵。

在我的用戶實體中,我可以調用獲取筆記本來獲取綁定到用戶實例的筆記本集合。

我的問題是應注意還包含用戶ID的外鍵,所以我可以打電話給用戶的筆記或這是多餘的,因爲筆記本已經綁定到一個用戶,我可以用來通過調用獲取所有筆記的集合在用戶擁有的每個筆記本上獲取筆記?

+1

的筆記它不一定是多餘的,如果一本書的筆記可以被其他用戶採取。如果一本書的筆記只能由一個用戶創建,那麼您最好使用帶連接的查詢。 –

+0

在一個筆記本中可以存在筆記嗎?筆記本是筆記本還是筆記分組機制? – Orangepill

回答

0

不,它不應該。這是用戶和筆記本之間的一對多,然後是筆記本和筆記之間的一對多。用戶擁有筆記本電腦。筆記本擁有筆記。

+0

因此,如果我想要獲取特定用戶的所有「公開」註釋。在筆記存儲庫中進行查詢會更好嗎?它將用戶標識作爲參數,然後通過加入筆記本並與用戶標識匹配來獲取該用戶的所有公共筆記,還是最好在筆記本中查詢存儲庫只返回附帶公共註釋的所有筆記本? –

+0

通常,當您使用'console'創建模型時,它也會爲您創建一個空白的存儲庫類。這是放置模型所有自定義功能的最佳位置。你可以把這個函數放在那裏爲特定的用戶獲取所有的筆記。然後您可以獲取存儲庫並調用該函數。看看這個鏈接:'http:// symfony.com/doc/current/book/doctrine.html#custom-repository-classes'。 – searsaw

0

沒有它不應該,因爲它已經與筆記本間接的關係,所以你可以調用用戶的筆記本電腦,這本書