2016-09-19 88 views
-1

我徹底研究了我的問題,我想我已經找到了解決方案的一些痕跡,但我不太確定他們是否正確並且領先我向右track.So我在這裏需要一些專家的建議和指導:我在正確的軌道上與我的Java + Mysql數據庫應用程序的商業軟件

我的問題: 我想提出一個JavaFX應用程序使用JDBC的MySQL數據庫,連接。因此,我的應用程序將用於員工與局域網連接的辦公室,並且他的系統中的一位員工所做的更改也能被其他人看到,並且他們可以從數據庫中檢索數據。

所以我的問題是,如果A,B,C三個員工和他們都有我的軟件和mysql分別安裝在自己的PC與LAN連接,如果一個創建一個事件/用過期會議和時間,該事件被保存在他的數據庫中,然後BC將從數據庫中檢索數據,當他們從他們的數據庫中打開我的軟件並查看更新時。

解決方案,我想出的是,我每次A,B,C的系統+ MYSQL與主機IP地址上安裝軟件和MySQL,並要求來自用戶的用戶名和密碼,然後好去。

  1. 我對嗎?

  2. 如果我在所有用戶系統上安裝MySql DB,那麼我如何鏈接每個人的數據庫並在每個用戶數據庫中維護類似的數據。

  3. MySql如何使用IP地址作爲主機而不是本地主機來維護所有用戶數據庫中的相同數據。 「數據我必須相似」。

我向每個可以分享他們的知識並指導我的人發出謙卑的請求。

+0

您正在錯誤的軌道。事實上你是[Off the Tracks](http://www.reddirtreport.com/sites/default/files/articles/2016/02/images/Train-Wreck-1.jpg)。在雲中託管您的數據庫 – Drew

+1

曾聽說過客戶端 - 服務器架構?應該有一箇中央服務器(包含數據庫和附加服務,即電子郵件服務器功能)以及連接到數據庫的每個用戶的一個客戶端應用程序。我現在不會評論複製這樣的東西,因爲你似乎對業務來說很陌生,你應該在掌握基本知識時閱讀它。 – SaschaM78

回答

1

在一臺計算機上安裝MySQL服務器,並讓每個人都連接到它。使用交易來使修改成爲原子,並且您將很好。

如果你真的想有一個MySQL服務器的每個客戶端,你將不得不使用的複製機制,這是(通常)一個痛苦的設置...

關於你有關無法評論編輯在客戶端計算機上安裝大量軟件:

如果您不控制有多少客戶端互連,中央數據庫您需要什麼,特別是如果要確保所有客戶端之間的數據一致。在這種情況下,如果數據庫失敗,您應該顯示一條錯誤消息,直到它再次啓動。這給你一個更簡單的設計,更容易的調試和維護,但它創建了一個單點故障。請注意,中央數據庫可以是任何選定的客戶端計算機,不一定是單獨的計算機(但通常知道數據庫計算機始終運行會更好)。

如果您沒有這種單點故障,您應該在您的問題中更清楚地說明它,並使用複製來設置數據庫集羣,這很麻煩,或者將您的整個設計更改爲通過網絡框架(如jGroups)完全分發一個並手動完成數據CRUD。這將解決單點故障,但會帶來巨大的成本:(非常多)維護困難,大量調試,客戶抱怨很多,因爲他們碰到一些隱藏的bug等。

+0

Thanx @Matthieu爲您解答。我根據你的回答閱讀了某些文檔,tutoria,我認爲主人複製將是很好的解決方案,但無法在每臺PC上安裝。其次,我不能在一臺電腦上安裝mysql,並從其他電腦進行交易,如果電腦關機或不活動,那麼數據庫將無法使用。nd軟件將崩潰。我不能在所有系統上使用相同的IP地址和mysql數據庫,還有其他任何我可以使用的東西,這些東西很容易爲普通用戶設置。 –

+0

@NiteshKhandelwal但是如果你想擁有多個客戶端,你需要以某種方式同步它們,而一箇中央數據庫是完美的,並使代碼更清晰。在某些時候,你必須決定你的系統應該停止工作的條件。說中央數據庫關閉的時間確實有意義。 – Matthieu

+0

@NiteshKhandelwal我編輯了我關於你的問題的答案。 – Matthieu

相關問題