【发布时间】:2014-08-29 12:05:40
【问题描述】:
我正在做一个项目,我有以下用例。
用户可以为他们设置许多标语,我们在数据库中有很多预定义的数据,当他们开始输入标语时我们使用这些数据来显示自动建议,我使用的是 Rails。
User has_and_belongs_to_many taglines
Tagline has_and_belongs_to_many users
我有单独的联合表,一切都很好,但现在我需要将用户的自定义标语存储到 DB,这将只属于特定用户。
我是否应该克隆标语表并向其中添加用户 ID 或者如果我们有多个模型具有与标语相同的用例,那么处理这类场景的最佳架构是什么。
【问题讨论】:
-
我可能会在
taglines表中添加一个custom列,并用它来过滤标签以获取建议。 -
@BroiSatse 但是标语表目前是多对多的,但是自定义用户标语是belongs_to only user,为什么我们需要混合两者。?
-
如果您创建第二个表,您需要记住每次更改模型时更新两个表/模型。您也无法一次性提取所有用户标签。
many-to-many能够保持one-to-many关联。只需添加一个验证来检查给定标签是否只能属于一个用户(如果它是自定义的)。
标签: mysql ruby-on-rails ruby database ruby-on-rails-4