gpt4 book ai didi

elixir - 在 Ecto 中我什么时候应该使用 assoc_constraint 与foreign_key_constraint

转载 作者:行者123 更新时间:2023-12-02 06:07:14 32 4
gpt4 key购买 nike

我知道两者之间的区别; assoc_constraint 使用 ecto 模式来验证外键约束,foreign_key_constraint 使用数据库。

在这种情况下,为什么要使用 assoc_constraint

最佳答案

如果你查看 assoc_constraint 的来源和 foreign_key_constraint ,您会看到它们以对 add_constraint (私有(private)函数)非常相似的调用结束

assoc_constraint:

add_constraint(changeset, :foreign_key, to_string(constraint),
:exact, assoc, {message, []})

外键约束:

add_constraint(changeset, :foreign_key, to_string(constraint),
:exact, field, {message, []})

两者之间的唯一区别是,对于foreign_key_constraint,您给出约束的确切名称,而对于assoc_constraint,您给出关联和函数的名称计算外键名称本身(使用与 Ecto 迁移相同的约定)。除此之外,两者的工作原理相同。 assoc_constraint 只是一个便利函数,因此您不必使用约束的确切名称,该名称比关联名称长。

关于elixir - 在 Ecto 中我什么时候应该使用 assoc_constraint 与foreign_key_constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47038995/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com