我正在努力学习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
用户是否可以拥有多个账单,还有一个账单可以拥有多个用户?
答案 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
数据库关系如果您想了解更多