【问题标题】:Database interface数据库接口
【发布时间】:2012-08-03 11:53:47
【问题描述】:

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

我需要/拥有的东西:

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

有什么建议吗?

【问题讨论】:

    标签: python database windows desktop-application


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      如果您确信该应用程序只能在 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连接数据库。

      【讨论】:

      • 我从没听说过 Jet,我去看看。
      猜你喜欢
      • 2019-04-13
      • 2011-10-28
      • 1970-01-01
      • 2012-06-21
      • 2018-04-20
      • 2010-09-29
      • 2011-02-03
      • 1970-01-01
      • 2017-04-19
      相关资源
      最近更新 更多