嘿,所以我要为电子商务网站建立后端
目前,我已经建立了基本模型,但是遇到关系问题
class Item < ApplicationRecord
belongs_to :shop
has_many :transaction_items
has_many :transactions, through: :transaction_items
has_many :users, through: :transactions
end
class Shop < ApplicationRecord
has_many :items
has_many :transactions, through: :items
has_many :user_shops
has_many :users, through: :user_shops
end
class TransactionItem < ApplicationRecord
belongs_to :item
belongs_to :transaction
end
class Transaction < ApplicationRecord
belongs_to :user
belongs_to :shop, optional: true
has_many :transaction_items
has_many :items, through: :transaction_items
end
class UserShop < ApplicationRecord
belongs_to :shop
belongs_to :user
end
class User < ApplicationRecord
has_many :transactions
has_many :items, through: :transactions
has_many :user_shops
has_many :shops, through: :user_shops
has_secure_password
validates :username, uniqueness: true
validates :username, presence: true
end
故事: 用户注册并定向到主页 用户单击商店,并被定向到商店页面 用户从商店页面选择商品并添加到购物车 用户进行交易并为购物车中的所有商品支付总价 每个购物车对于该商店页面都是唯一的(不能将来自不同商店的商品合并到一个购物车中)
所以我希望用户通过交易获得许多物品(用户在结帐时进行交易后获得物品)
但是我应该使用通过交易拥有许多用户的项目还是应该拥有许多用户的项目?由于交易仅属于用户,因此对该决定感到困惑
或完全替代的方法
我应该创建一个新的联接模型user_items(联接表),该模型与用户和诸如user_items之类的项目之间的事务无关,还是当前的设置更好?由于用户只有在进行交易时才能拥有物品
我希望开始时减少模型数量,以免事情变得太复杂,但是我的交易模型已经使我有些困惑
我感谢您的任何帮助或建议!兴奋地超过了这个阶段,所以我可以开始构建。