3

我想用 Python (PyGTK) 实现一个数据库桌面应用程序。到目前为止,我一直在使用 sqlite3,但我读到它不是很好,如果很少有人想同时访问它。我现在正在考虑切换到另一个界面,但我不知道哪个界面或是否真的有必要。

我需要/拥有的:

  • 2 个表,每个表大约 2000 个条目,这是主要数据集,但会添加更多。
  • 该数据库将存储在本地网络中。该应用程序将由大约 5 个人在 5 台不同的 PC 上使用。
  • 该工具的使用不是很频繁,很少有人同时使用/编辑,但它可能会发生。
  • 安全是一个重点,但由于该工具在 Intranet 中运行,我不需要关心登录/备份。这是由服务器和 IT 人员完成的。
  • 数据库应该不会太慢,这里还有一点,每个条目大约有 3 个图像(总共 15000 个)。我认为如果用户选择相应的条目来生成它们中的每一个会很慢,但我必须尝试一下。或者,我生成所有图像并将文件路径存储在数据库中。
  • 操作系统必须是 Windows (XP/7/64bit)

有什么建议么?

4

2 回答 2

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 回答
1

SQLite允许单个写入者但有多个读取者。

当然,在这种情况下,这并不重要。当多个用户尝试在您的网络上打开并写入该 SQLite DB 文件时,最后一个写入 DB 文件的人将获胜,而其他更改将丢失。

您需要使用如下数据库服务器:

括号中的链接是指向这些数据库的 Python DB-API驱动程序信息的链接。

好消息是,如果您已经有一个可以与sqlite3驱动程序一起使用的应用程序,那么您真的只需要通过并替换sqlite3为您切换到的任何数据库的适当驱动程序。好吧,您还需要使用一些关于在何处连接到网络上的数据库服务器的附加信息来更新您的应用程序。

例如,SQLite 只需要数据库文件的路径,而上述任何数据库都需要主机/IP 地址、端口、数据库名称、数据库用户名和数据库密码。

我个人更喜欢 PostgreSQL,但这很可能取决于您的 IT 和服务器人员他们想要支持什么。我想您可以使用 SQLServer Express 之类的东西(因为您的数据集似乎没有那么大),并且可能更适合 Windows 环境。

于 2012-08-06T14:09:00.777 回答