建模一个简单的数据库 - Bill分割应用程序

时间:2017-10-15 17:25:18

标签: sql ruby-on-rails

我正在努力学习SQL数据库的建模,并且在理解某些概念时遇到了一些麻烦。我想构建一个应用程序,用户可以在餐厅分割账单。有人可以告诉我是否允许以下​​内容?

我有账单,物品和用户

Bill has_many :items, dependent: :destroy
Bill has_many :users, foreign_key: :user_id
User has_many :bills, foreign_key: :created_by
Item belongs_to :bill

用户是否可以拥有多个账单,还有一个账单可以拥有多个用户?

1 个答案:

答案 0 :(得分:1)

这是一个更基础的数据库设计问题。如果我要为帐单共享应用程序设计此数据库,它就像这样

user.rb

has_many :bill_contributions
has_many :bills, through: :bill_contributions

bill.rb

has_many :items
has_many :bill_contributions
has_many :users, through: :bill_contributions

bill_contribution.rb

belongs_to :user
belongs_to :bill
我把它拆分成这样,因为用户和账单之间有很多并且属于许多关系,因为用户可以有很多账单和账单可以在许多用户之间分配。你可以查阅HABTM 数据库关系如果您想了解更多