最近在看symfony2 mongodb文檔,感覺在使用上有些疑惑。
mongodb有類似mysql orm的odm one-to-one、one-to-many、many-to-many的關係映射,使用起來也比較方便。
但是如果結合使用mysql和mongodb,從mysql取出mongodb的數據,按照doctrine one-to-one官方文件需要通過訂閱器,LifecycleEventArgs事件將mysql和mongodb關聯。
而one-to-many、many-to-many就沒有詳細例子了。後來發現,使用one-to-many、many-to-many的時候需要在mysql和mongodb中產生一張中間表,在通過LifecycleEventArgs事件,使中間表成為mysql和mongodb通信的橋樑
那麼對於這張中間表的維護,操作起來比較麻煩,例如刪除mongodb的數據,那麼也必須更新中間表。另外如果兩個資料庫關聯的表格很多,那中間表豈不也很多? ?
對於smyfony2將MySQL和mongodb組合使用。建議單一使用一種資料庫為好? ? ?若將兩者組合使用,存放的資料必須依賴性不強? ? ?既然那樣doctrine官網組合使用mysql和mongodb感覺是不是有些累贅? ?
要簡單可靠肯定是應該將各業務分別放到單一的存儲裡;Doctrine提供了跨類型存儲的面對對像操作界面,並不是說推薦這麼做。
既然都已經在不同的儲存裡了,用API來操作是比較適合的。