【发布时间】:2013-11-26 16:55:47
【问题描述】:
找不到轻松完成此任务的最佳方法 我想为以下问题提出数据库模型。
有一个 Deal 表,它有一个关联的 account 表。每个帐户可以有多个联系人。现在,一笔交易需要分配一个主要联系人,该联系人必须是关联帐户的众多联系人之一。如何确保主要联系人是帐户联系人之一。
Deal Table
account_id
primary_contact_id
Account Table
name and other params
Contact Table
account_id
phone, email etc.
例如。我目前使用的类
class Deal < ActiveRecord::Base
belongs_to :account
belongs_to :contact
end
class Account < ActiveRecord::Base
has_many :contacts
has_many :deals
end
class Contact < ActiveRecord::Base
belongs_to :account
has_many :deals
end
我可以在交易模型或控制器中添加验证,以确保添加的联系人是其帐户联系人之一。但是如何处理以下情况:
- 从账户中删除联系人应确保deal表对应的contact_id设置为nil
- 删除与交易关联的帐户应确保该交易表的contact_id 无效
- 更新帐户关联应确保交易的contact_id 无效。
【问题讨论】:
标签: mysql ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-3.1