我正在使用PyQt编写音乐目录应用程序来显示GUI。我有关于选择数据库引擎的问题。有太多的选择。
我可以用:
-PyQt内置QSql
-sqlite3
-SQLAlchemy(Elixir)
-SQLObject
-Python DB-API
可能有更多的选项,这个列表是我从谷歌得到的(我对任何其他命题开放)。如果我决定使用一些ORM我应该使用哪个数据库系统? MySql,PostgreSQL还是其他?我知道一些MySql,但我听说PostgreSQL有很多好处,另一方面,sqlite3似乎在桌面应用程序中最受欢迎。我很感激任何建议。
编辑: 应用程序适用于Linux和Windows。我认为数据库大小应该在100-10k左右。
答案 0 :(得分:4)
SQLite3具有随Python一起发布的优势,因此不需要任何安装。它有许多不错的功能(易于使用,可移植性,ACID,存储在一个文件中,而且速度相当快)。
SQLite是一个很好的起点。 Python的DB API确保了所有流行数据库的一致接口,因此如果您改变主意,以后切换到另一个数据库应该不难。
关于是否使用ORM的决定更难,以后更难改变主意。如果您可以在几个函数中隔离数据库访问,那么您可能根本不需要ORM。
答案 1 :(得分:1)
最好使用ORM(对象关系库)库,它允许您以OOP方式进行设计,并让它为您处理数据库。有许多优点;但最大的一点就是你不会被绑在数据库引擎上。您可以使用sqlite进行开发,并使您的项目与Postgresql,Mysql甚至Oracle D保持兼容,具体取决于配置参数中的单个更改。
鉴于此,我选择的ORM是SQLAlchemy,因为它的成熟度是众所周知和使用的(但其他人也可以。)