1

我有一个程序可以计算一组普通的相互关联的对象(这些对象由基本上是 String、int 或链接到另一个对象的属性组成)。我想将对象存储在关系数据库中以便于 SQL 查询(从另一个程序)。

此外,对象(类)往往会发生变化和发展。我希望有一个通用的解决方案,只要类发展,就不需要对“持久层”进行任何更改。

你有什么办法做到这一点吗?

4

4 回答 4

1

将对象存储在 JSON 中怎么样?您可以编写一个函数,在将对象存储到数据库之前对其进行序列化。如果您有对象的特定标识符,我建议将其用作索引,以便您可以轻松检索它。

于 2013-10-02T17:08:32.987 回答
1

我自己没有使用过,但这听起来像是 SQLAlchemy 的用例:

http://www.sqlalchemy.org/

它基本上让您将对象属性定义为表列或与其他类的关系,并处理基本上所有直接的数据库交互。可能还有其他库在做同样的事情,但 SQLAlchemy 是我曾经偶然发现的,并且似乎很常用。

于 2013-10-02T17:18:32.520 回答
0

sebastian 的想法可能是最容易使用的,因为它会为您进行对象映射,但是,如果您已经熟悉 SQL,并且更喜欢 SQL,并且正在使用 python 2.5 或更高版本,则可以考虑使用 sqlite3 库。这是一个非常易于使用的库,我很确定它不需要任何工作来设置它。不过,您可能必须安装 sqlite3 库。http://docs.python.org/2/library/sqlite3.html

于 2013-10-02T17:32:03.343 回答
0

SQLAlchemy 很棒。另一个领先的选择是使用来自 django 的 ORM:

https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models

基本上,在 python 中创建扩展 django 模型类的类被映射到标准关系数据库表。

于 2013-10-02T17:43:59.477 回答