我最近发现了PyKE,并注意到一个潜在用途(实际上,它最初构建的用途)的一个例子是编译SELECT语句来查询数据库,并将结果映射到字典中。作者强调,这不是一个ORM。
因此,我有两个子问题:
发布于 2016-09-15 12:29:22
关于你的第一个问题
ORM是您的逻辑和数据之间的一层,它将一个映射到另一个。关系数据库通常不会以对象使用数据的方式存储数据,因此ORMs的目标是抽象出编写SQL以将数据从一种表示形式转换为另一种表示形式所需的脑力训练。(国际水文学组织,他们往往做得不好或没有效率)
具体来说,PyKE提供了SELECT编译,但没有提供明显的CRUDing (CRUD: CRUD:CRUD、Read、Update、Delete),这是ORM做的最重要的事情。
关于第二个问题
当您可能需要一个知识引擎时,可以使用PyKE (例如,自然语言数据搜索)。然后,PyKE可能知道如何以最有效的方式从数据库中提取数据,以完成自己的目标。
另一方面,ORM将被赋予代表程序中某些对象的数据,例如来自网站的采购订单,它将在创建PO时插入对象,在恢复会话时将其从DB中取出,在用户向PO添加和删除项时更改数据,如果购买完成或中止,则删除PO (CRUD)。
tldr
PyKE是一个专门的库,它抽象出了使用这个库需要编写SQL的一些需要,但是没有提供完整的DB交互,因为它不是为这个库构建的。
ORMs确实提供了与DB的这种交互,并试图以一种非常动态的方式更容易地使用数据;尽管在我的经验中,在手工构建的SQL之上使用/不使用ORM会引发一些激烈的争论。
https://stackoverflow.com/questions/39398181
复制相似问题