我是初学者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
这会是更好的方法吗?或类似的东西: 用户通过债务进行账单管理 结算有多少债务?
在这种情况下,我会很感激为这些协会建模提供一些帮助,因为我仍然有点迷失在此流程中。
答案 0 :(得分:0)
假设一个债权人和多个债务人进行单一计费,您将需要债权人的一对一关系 - &gt;结算(在账单上属于你,就像你所做的那样),但债务的多对多关系 - &gt;用户。
通常,最好将多对多实现为has_many:通过这样可以添加逻辑。当涉及到金钱时,这可能是非常重要的!
我会重新考虑依赖:虽然破坏。您可能希望使用软删除,否则您将丢失过去的交易。