我正在尋找一種方法來爲我們的客戶之一共享多個Symfony2應用程序之間的用戶。在過去的三年中,我們爲他們提出了幾個具有不同用途的應用程序(4),但始終使用「相同」的用戶模型和數據。Symfony2 - 在多個應用程序之間共享用戶
目前,我們有4個獨立的數據庫,其中「users」表在所有應用程序中都是相同的,除了多對多關係之外。起初,我正在考慮添加第二個實體管理器(和連接),並將用戶放入單獨的數據庫中。所有的應用程序都可以使用它,並且所有用戶都擁有相同的憑據。但是,我如何處理多對多的關係呢?
舉例來說,在應用程序A上,您有一個從「用戶」到「客戶」的多對多關係,但「客戶」表在應用程序B/C/D中不存在。在應用程序B上,您有「用戶」到「供應商」之間的多對多關係,但「供應商」表在應用程序A/C/D中不存在,等等。將「客戶」或「供應商」表移動到共享數據庫也不是真正的選擇,因爲其他實體(不共享)也與這些表有關係。
我基本上需要找到一種方法來映射「共享用戶」模型/數據庫上的多對多關係,這對每個應用程序都是唯一的。有沒有辦法用多個數據庫來實現這一點?我應該去採取其他方法嗎?
歡迎所有信息。提前致謝。
我認爲的第一件事情是,它不是強制性的使用Doctrine的設計關係映射d僅用於數據庫關係。您也可以在實體內手動填充數組。大多數情況下,您需要添加到服務容器的UserManager(或UserHelper)類。然後你可以做一些像$ user = userHelper-> loadByUsername($ username);或userHelper-> update($ user); –