怀疑选择哪种关联

时间:2014-09-20 19:59:43

标签: ruby-on-rails

我是初学者Rails开发人员,现在正在构建一个示例项目,以展示某些工作申请。我想这个应用程序相当简单,但我对选择哪种关联以及为什么会产生疑问。

基本上,用户可以创建账单(作为其债权人),账单可以有许多其他用户(作为他们的债务人),因此您可以跟踪与其他人共享的账单,如租金,市场,食品订单等,并控制每个人付给你的钱。

现在我有以下型号:

class User < ActiveRecord::Base
    has_many :billings, foreign_key: "creditor_id", dependent: :destroy
    has_many :debts, foreign_key: "debtor_id", dependent: :destroy
end

class Billing < ActiveRecord::Base
    belongs_to :creditor, class_name: "User"
    has_many :debts, dependent: :destroy
end

class Debt < ActiveRecord::Base
    belongs_to :billing
    belongs_to :user
end

这会是更好的方法吗?或类似的东西: 用户通过债务进行账单管理 结算有多少债务?

在这种情况下,我会很感激为这些协会建模提供一些帮助,因为我仍然有点迷失在此流程中。

1 个答案:

答案 0 :(得分:0)

假设一个债权人和多个债务人进行单一计费,您将需要债权人的一对一关系 - &gt;结算(在账单上属于你,就像你所做的那样),但债务的多对多关系 - &gt;用户。

通常,最好将多对多实现为has_many:通过这样可以添加逻辑。当涉及到金钱时,这可能是非常重要的!

我会重新考虑依赖:虽然破坏。您可能希望使用软删除,否则您将丢失过去的交易。