数据库和python

数据库和python,python,database,sqlite,sqlalchemy,Python,Database,Sqlite,Sqlalchemy,我正在用PyQt编写一个音乐目录应用程序,用于显示GUI。我在选择数据库引擎方面有问题。选择太多了。 我可以使用: -PyQt内置QSql -sqlite3 -SQLAlchemy(长生不老药) -SQLObject -Python DB-API 可能还有更多的选择,这个列表是我从谷歌得到的(我对任何其他主张持开放态度)。如果我决定使用某种ORM,我应该使用哪种数据库系统?MySql、PostgreSQL还是其他?我知道一些MySql,但我听到了很多关于PostgreSQL的好消息,另一方面,s

我正在用PyQt编写一个音乐目录应用程序,用于显示GUI。我在选择数据库引擎方面有问题。选择太多了。 我可以使用:
-PyQt内置QSql
-sqlite3
-SQLAlchemy(长生不老药)
-SQLObject
-Python DB-API
可能还有更多的选择,这个列表是我从谷歌得到的(我对任何其他主张持开放态度)。如果我决定使用某种ORM,我应该使用哪种数据库系统?MySql、PostgreSQL还是其他?我知道一些MySql,但我听到了很多关于PostgreSQL的好消息,另一方面,sqlite3似乎在桌面应用程序中最受欢迎。如蒙指教,我将不胜感激

编辑:
应用程序要在Linux和Windows上工作。我认为数据库大小应该在100-10k个条目左右。

SQLite3具有与Python一起提供的优势,因此它不需要任何安装。它有许多很好的特性(易于使用、可移植、ACID、在单个文件中存储,并且速度相当快)

SQLite是一个很好的起点。Python的dbapi确保了与所有流行DBs的接口一致,因此如果您改变主意,以后切换到另一个DB应该不难


关于是否使用ORM的决定更难,而且以后更难改变主意。如果您可以在几个函数中隔离DB访问,那么您可能根本不需要ORM。

您最好使用ORM(对象关系库)库,它允许您以OOP方式进行设计,并让它为您管理数据库。有很多好处,;但其中最重要的一点是,您不会被绑定到数据库引擎。您可以使用sqlite进行开发,并使您的项目与Postgresql、Mysql甚至Oracle D保持兼容,这取决于配置参数中的单个更改


考虑到这一点,我选择的ORM是SQLAlchemy,因为它在知名度和使用度方面都很成熟(但其他的也可以)。

您的目标平台是什么?您希望数据库的大小是多少?很好,谢谢。SQLite3可能是我的选择。我只是好奇,如果出于某种原因不能使用SQLite3,哪个BD会更好?MySql还是PostgreSQL?另一个问题:QSql对象如何?我知道这很难决定,但一般来说,它比Python的DB API快/慢吗?@fenuks好吧,如果你不知道哪一个更适合你的任务,那么很有可能这个差异对你来说并不重要。随便挑一个,如果你被业绩困住了(比如2-3年),你就会确切地知道你想要什么样的业绩。只有这样,您才能选择更好的数据库。