2013-04-13 215 views
0

我'創建一個客戶端服務器應用程序,我需要更新一個特定的數據庫。我使用python與MySQL。使用客戶端訪問數據庫或服務器來訪問數據庫

client.py文件將讀取一個QR碼併發送封裝在數據庫中的數據。大約有50個這樣的客戶端將向服務器發送數據。

我已經在服務器上設置了MySQL服務器,並且已經爲每個客戶端創建了表。

有兩種選擇來操縱服務器上的數據庫:

客戶端訪問數據庫和查詢直接與MySQL服務器。

互聯網說一切有關訪問MySQL的記錄,我可以做到,使用下面的代碼:

client.py

import MySQLdb as mdb 
import sys 

con = None 

try: 

    con = mdb.connect('server_address', 'user', 
     'pass', 'table pertaining to that particular client'); 

    cur = con.cursor() 
    cur.execute("SELECT VERSION()") 

    data = cur.fetchone() 

    print "Database version : %s " % data 

except mdb.Error, e: 

    print "Error %d: %s" % (e.args[0],e.args[1]) 
    sys.exit(1) 

finally:  

    if con:  
     con.close() 

或者我可以創建一個server.py文件時,將以JSON的形式獲取數據,並自己在本地主機上處理數據庫。

哪種方法更好?

+1

不幸的是,這種問題不適合本網站的格式,請參閱[FAQ#dontask]。像這些問題往往會導致模糊的答案,這些答案也很快就過時了。如果我們能夠幫助您解決特定問題,請隨時發佈另一個問題! –

+0

@MartijnPieters我如何使它更具體或應該重定向到[程序員](http://programmers.stackexchange.com/?as=1)? –

+0

我會說這是一個白板式的問題,所以程序員會是一個更好的地方。但是,您需要在這裏提供(更多)更多的細節,如程序類型,遇到的問題等等。其他方面涉及的變量太多。 –

回答

0

沒有「最好」的答案,只有折衷。

使用直接的MySQL連接可以使編程變得更簡單,更快速(更少層次),但可以使系統變得易碎。

如果你使用客戶端/服務器(通過TCP或HTTP),它更容易安全(客戶端沒有數據庫信譽,不需要將MySQL服務器暴露給客戶端),更容易改變路線(你可以在不更改客戶端的情況下更改表格。)