3

Python (PyGTK) でデータベース デスクトップ アプリケーションを実装したいと考えています。今まで sqlite3 を使用していましたが、同時にアクセスしたい人がほとんどいない場合、あまり良くないことを読みました。現在、別のインターフェースに切り替えようと考えていますが、どのインターフェースが必要なのか、本当に必要なのかわかりません。

必要なもの/持っているもの:

  • それぞれ約 2000 エントリの 2 つのテーブル。これがメインのデータセットですが、さらに追加される予定です。
  • データベースはローカル ネットワークに保存されます。このアプリケーションは、5 台の異なる PC で約 5 人によって使用されます。
  • ツールの使用頻度は高くありません。同時に使用/編集する人がほとんどいない可能性は非常に低いですが、発生する可能性があります。
  • 安全性は大きなポイントですが、ツールはイントラネットで実行されるため、ログイン/バックアップを気にする必要はありません。これは、サーバーと IT スタッフによって行われます。
  • データベースは遅すぎてはいけません。ここで別のポイントがあります。各エントリには約 3 つの画像があります (すべて合わせて 15000)。ユーザーが対応するエントリを選択した場合、それらのそれぞれをライブで生成すると遅くなると思いますが、これを試してみる必要があります。または、すべての画像を生成し、ファイル パスを DB に保存します。
  • OS は Windows (XP/7/64bit) である必要があります

助言がありますか?

4

2 に答える 2

1

SQLiteでは、ライターは 1 人ですが、リーダーは複数人使用できます。

もちろん、この場合は問題ありません。複数のユーザーがネットワーク上のその SQLite DB ファイルを開いて書き込もうとすると、DB ファイルへの最後のライターが勝ち、他の変更は失われます。

次のようなデータベースサーバーを使用する必要があります。

括弧内のリンクは、これらのデータベースの Python DB-APIドライバーに関する情報へのリンクです。

幸いなことに、ドライバーで動作するアプリケーションが既にある場合は、切り替え先のデータベースに合わせて適切なドライバーにsqlite3置き換えてください。sqlite3また、ネットワーク上のデータベース サーバーに接続する場所に関する追加情報を使用して、アプリケーションを更新する必要があります。

たとえば、SQLite では DB ファイルへのパスのみが必要ですが、上記のデータベースではホスト / IP アドレス、ポート、データベース名、データベース ユーザー名、およびデータベース パスワードが必要です。

個人的には PostgreSQL を好みますが、これは IT およびサーバー スタッフが何をサポートしたいかによる可能性が高いです。SQLServer Express のようなもの (データセットがそれほど大きくないように見えるため) でうまくいくと思いますが、それは Windows 環境によりうまく適合する可能性があります。

于 2012-08-06T14:09:00.777 に答える
1

アプリケーションが Windows でのみ実行されると確信している場合は、JET (Access が使用するバックエンド) をお勧めします。

マシンに Access がインストールされていない場合は、次を使用して空のデータベースを作成できます。

import ctypes
ODBC_ADD_DSN = 1
Return = ctypes.windll.ODBCCP32.SQLConfigDataSource(0, ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)", "CREATE_DB=C:\Temp\database.mdb" + chr(0))

次に、pyodbc または adodbapi を使用してデータベースに接続します。

于 2012-08-06T14:07:53.073 に答える