python - 使用 Elixir 有什么好处

标签 python sqlalchemy python-elixir

<分区>

... 与声明式 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 - 灵药反射

python - 将列表函数应用于 itertools.groupby 中的嵌套生成器

python - SQLAlchemy 在一个事务中更新多行

MySql & Sqlalchemy - 并非所有外键都可见

python - 使用sqlalchemy.sql.functions.char_length作为过滤条件

python - 从 sqlalchemy 转储 csv