<分区>
... 与声明式 sqlalchemy 的对比?
<分区>
... 与声明式 sqlalchemy 的对比?
最佳答案
我有started a list here关于 elixir 与 sqlalchmey 的实际(技术)差异/优势,但我不知道我的说法是否正确,因为我对 sqlalchemy 的了解非常有限(我使用了非常小的 elixir 和 sqla)。
如果答案显示 sqla 中的代码示例和 elixir 中的等效代码示例以显示差异,这将是非常明智的,因为一些比较问题在 stackoverflow 中得到了回答(例如,我想到 mako vs jinja2)
无论如何,这是我的 list ,如果有人纠正我(纠正我对 sqlalchemy 的假设),我将不胜感激
Elixir 实现了 Active Record 模式,旨在取代 ActiveMapper SQLAlchemy 扩展。 (过时了:sqlalchemy 跟上了吗?)
关系 b/w 模型清晰(呃):OneToMany、ManyToOne、ManyToMany 和 OneToOne 比 sqla 的关系更清晰。一目了然,您可以看到模型之间的关系。
继承比在 sqlalchemys 中更方便。它也更明显,因为您是从类派生的。在 sqla 中,您必须调整 with_polymorphisme 和 polymorphic_on 属性。
继承性:在 elixir 中,表、列和外键是自动创建的,但在 sqlalchemy 中不是。 (是 100% 正确吗?)
Elixir 自动为所有表创建一个 ID 列(如果没有声明其他主键)
Elixir 自动为关系创建 FK,sql 不会(?)
在 elixir 中,大多数时候,您不必在关系中指定反向引用。在 sqla 中,你总是必须 (?)
Elixir 有版本控制扩展(sql 没有?)
Elixir 有一个可关联的扩展,它创建多对多关系并提供很好的 select_by_XXX 方法,其中 XXX 是“关联”类的名称。 Sqla 没有这种扩展(?)
继承关系在 Elixir 中透明地完成。在 sqla 中,它不是,你必须这样做:http://www.sqlalchemy.org/docs/reference/ext/declarative.html#mixing-.. .)
关于python - 使用 Elixir 有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957938/
相关文章:
python - Python Quad 积分乘以 float
python - 为用户 auth django 创建用户配置文件
python - Seaborn FacetGrid PointPlot 添加 1 条网格线
flask - 设置多对多sqlalchemy flask app sqlite db的插入顺序
python - 将列表函数应用于 itertools.groupby 中的嵌套生成器
python - SQLAlchemy 在一个事务中更新多行
MySql & Sqlalchemy - 并非所有外键都可见