2015-08-20 22 views
1

這個網站對於像我這樣的Symfony新手來說非常棒,希望這將會是同樣的體驗。我已經搜索了很多這個問題,所以也許我沒有使用正確的術語。我已閱讀有關使用服務,但似乎沒有給出我需要使用多個數據庫與不同表的示例。所以在這裏,首先我決定使用當前的數據庫設計,我不能合併數據庫或重新創建它們,我必須按原樣使用它們。下面是MySQL查詢我想用:帶有多個數據庫的Symfony查詢

select name, title, rank from db1.tbl1, 
db2.tbl1,db2.tbl2 
where db2.tbl1.id=db2.tbl.id 
and db1.tbl1.person_id=db2.tbl2.person_id; 

我創建連接到parameters.yml和config.yml分貝。我正在考慮爲其中一個實體創建一個存儲庫,然後讓它與相同數據庫中的其他表內連接,但找不到任何示例。我想用最佳做法來做到這一點。洗耳恭聽。

我還應該提到所有數據庫都由同一臺服務器管理。

+0

看看這個答案http://stackoverflow.com/questions/13648974/symfony2-doctrine2-cross-database-join-column-throws-mapping-exception – DanR

+0

這似乎更多,如果他們居住在不同的捆綁,但這可能是語義。這是最佳做法嗎? @DanRevah – shayster01

回答

1

您不能在單個查詢中使用多個數據庫,因爲要使多個數據庫正常工作,請使用you need a manager for each

我無法想象使用非資源密集型數組或對象的解決方案。因爲你需要加載至少一個整個表。

+0

我可能沒有使用正確的術語,但是我已經根據您列出的說明爲每個管理器創建了多個管理器。那麼你是說唯一的選擇是使用直接的PHP函數呢? Symfony從未考慮過人們可能想跨數據庫查詢的想法? @ Z-WoIF – shayster01

+1

不與ORM或DQL(我知道的)。 不僅僅是一個symfony問題,這是一個學說。 另一種選擇是創建第三個管理員,並擁有超過這些多個數據庫的權限的用戶,然後使用[Native SQL](http://doctrine-orm.readthedocs.org/en/latest/reference/native-sql.html) –

+0

作爲前綴記得我沒有創建這些數據庫,所以有趣的是所有數據庫都具有相同的用戶權限。我認爲這可能是最好的解決方案,但希望確定。謝謝。 – shayster01