2012-10-12 26 views
-1

我正在設計一個應用程序,將客戶端在Windows,週末,driod,iOS和Windows手機。我對什麼是最好的數據庫的使用以及遵循的最佳體系結構方法感到困惑。最好的跨多個平臺同步數據庫

首先想到 有一個主數據庫驅動的網站和每一個客戶端的信息,且對與主只的那部分信息是相關的訂閱用戶同步客戶端機器小,重量輕的DB。這意味着如果我是用戶101,那麼我的Windows應用程序,iOS應用程序將只有我的本地數據庫中的數據子集,這將使我能夠脫機工作,但是當我在線時,我可以與主數據庫同步。

的再思考 服務器上給予的DB每個客戶自己的,然後只是有自己的獨立操作系統的應用與自己的數據庫的同步。我的想法背後是同步較不復雜。

我的目標是以不會因維護問題而陷入困境的方式來做到這一點,並將保持系統靈活的增長。

所有的建議或問題都會很好。 什麼DB是最好的? 什麼sync'ing技術將是最好的?

該網站將在Asp.net。 windows應用程序也將在.Net中。

+0

這真的是一般化,似乎是一個不同的問題。堆棧溢出不是一般的討論論壇,所以這可能會被關閉(和downvoted,但我沒有)。請閱讀http://stackoverflow.com/faq。 –

+1

一般想法:雙向數據庫到數據庫同步是一場噩夢,不惜一切代價避免它。如果您可以在所有衝突解決方案中指定一方成爲「勝利者」,並且不介意重新出現已刪除記錄等異常情況,但總體上避免這種異常情況,那麼它可能會確定。我會使用集中的數據庫和Web服務。 –

+0

不知道我同意它是一般的,它是數據庫同步建築問題,對不起,如果我不知道足夠具體,但我正在尋找一些指針形式有經驗的人。我做了很多研究。你能指出我討論建築的論壇的方向嗎? – ChampChris

回答

1

理想情況下創建一箇中央數據庫並創建Web服務來連接它。這樣您用於連接的設備和軟件只需要瞭解基本的http消息。 NodeJS有一個非常好的PostgreSQL庫,你可以使用一個叫做Express的nodejs模塊,它允許你爲你的數據庫過程創建路由。例如,呼叫http://myaddress.com/select_all_employees將路由到調用存儲過程的調用,該存儲過程將選擇並以json字符串或其他標準格式返回所有員工。任何設備和它的開發框架都應該能夠進行這種簡單的網絡調用。

+0

我的答案假設你不需要斷開連接。 – Kuberchaun

+0

另請注意,您也可以將參數發送到Express路線。 – Kuberchaun

+0

遵循這個邏輯,我也能夠在離線情況下將請求堆疊到集中的數據庫。意思是否有客戶端處於離線狀態我可以填充客戶端數據庫並等待客戶端返回聯機時處理新的插入或更新 – ChampChris