我們正在使用.net mvc和sqlserver db。具有單個共享數據庫的多租戶數據庫
編輯
我們還使用NHibernate的數據訪問。我提到這個是因爲我們不會編寫自己的sql或者存儲過程。觸發器中的數據庫可能會工作,但我不知道你是否可以在數據庫之間做到這一點。
編輯完
我們希望有一個多租戶設置,使每個客戶都有自己存在的數據庫實例。但是,我們需要讓每個租戶連接到有大量用戶信息的其他數據庫。它們之間會有一些少量的共享數據。基本上租戶將參考共享數據庫中用戶的數據。
這個想法是,有些人將只使用共享數據庫(獨立客戶端),然後他們可能會被租戶客戶之一聘用。租戶將希望訪問共享數據庫中的新員工數據。此外,員工可能會離開一個租戶並加入另一個租戶,或離開一個租戶並保持獨立性並希望獲得他們的數據。我們當然可以在每個租戶中擁有共享數據庫模式,並且每次有人離開或加入時都會進行大量導出導入,但這看起來也很麻煩。
我在詢問有關如何管理租戶將引用共享數據庫但沒有引用完整性的事實的任何建議。或者如果有其他方法或其他方法。 謝謝, Raif
嗨,感謝您的意見。我編輯了我的問題,以表明我們使用的是nhibernate而不是sprocs。我不熟悉後面或代替觸發器這是我應該研究的東西嗎? – Raif
如果你想用共享數據強制執行參照完整性,是的,那肯定是一種方法。對於我來說,這是否有必要再次說出。 –
嗯,是的,恐怕觸發器可能無法工作。您看到我擔心共享數據庫中的數據會更改並混淆租戶。但我不能在共享數據庫上放置觸發器,然後說出去,然後找到合適的租戶並註冊日期信息。共享數據庫不會有任何參考連接到它的租戶。 – Raif