2013-12-09 30 views
0

官方的規格可能沒有提到這個或認爲它「超出了本規範的範圍」。OAuth 2.0實現 - Auth服務器和資源服務器應該有獨立的數據庫嗎?

假設我們已經決定分開auth和資源服務器。

在實踐中,我們爲什麼要在資源和auth服務器訪問同一個數據庫,否則我們爲什麼要保留兩個單獨的數據庫 - 每個服務器一個?

我正在寫這個問題,因爲實體框架。如果我在兩個站點之間共享相同的數據庫,即使auth服務器僅觸及與帳戶相關的表並且資源服務器僅觸摸了數據(POCO)表,我們之間的遷移也會發生衝突。 (我其實還沒有嘗試過,但我不想浪費時間進行試驗,所以我想聽聽有人遇到過這個問題。)

但是,如果我分開數據庫,我會失去用戶和他擁有的數據之間的外鍵關係 - 但這甚至是必要的?感覺就像那些「我們那樣做是因爲」實踐。

回答

0

爲了將它們結合起來,用遷移,你需要有一個對的DbContext遷移,包括通過任何認證或資源服務器所使用的所有類型,並使用該腳手架遷移。對於需要多個上下文並希望使用遷移的用戶來說,這似乎是一種常見做法;到目前爲止,它對我來說效果很好。

就外鍵約束而言,他們就是這樣 - 約束。它們在數據庫級別執行您的業務規則(即Foo.Bar必須包含存在於Baz.Bar中的值)。這是否有必要取決於你的用例。很少有事情是「僅僅因爲」完成的,儘管許多事情都是在沒有完全理解的情況下完成的 - 「因爲我在其他地方看到它是這樣做的」。其他地方(或從他們複製的地方等)可能有一個完全有效的理由,這可能會或可能不適用於您的用例。

相關問題