2014-08-29 115 views
-1

我正在开发一个项目,我在下面的使用案例。需要关于数据库架构的建议

用户可以有很多标语对他们来说,我们有很多,我们用展示自我暗示在DB预定义的数据的时候,他们开始打字的标记线,我使用Rails。

User has_and_belongs_to_many taglines 

Tagline has_and_belongs_to_many users 

我有独立的接合表,一切都很好,但现在我需要自定义的用户标语存储数据库,这将是只属于特定的用户。

我应该克隆拉线表并添加用户ID给它或什么是处理这些那种情景,如果我们有相同的有使用情况下,像标语多个模型的最佳架构。

+0

我会列'custom'可能添加到您'taglines'表,并用它来过滤标签建议。 – BroiSatse 2014-08-29 12:08:34

+0

@BroiSatse但是标语表格目前是多对多的,但是自定义用户标语仅属于用户,为什么我们需要将两者混合。 – Senthil 2014-08-29 12:37:50

+0

如果您创建第二个表格,则每次需要更改模型时都需要记住更新两个表格/模型。您赢了;无法一次性拉出所有用户标签。 “多对多”能够保持“一对多”关联。只要添加一个验证来检查给定标签是否属于只有一个用户,如果它是自定义的。 – BroiSatse 2014-08-29 14:05:35

回答

0

@BroiSatse评论有意义,我也跟着相同。

如果您创建了第二个表格,则每次需要更改模型时,都需要记住更新两个 表格/模型。您赢了; 能够一次性拉出所有的用户标签。多对多是 能够保持一对多关联。只需添加一个验证,即可检查 给定的标签只能属于一个用户,如果它是自定义的。

0

您现有的用户标语表具有多对多的关系,保持这种方式。而用户表和新customTagline有一个一对多的关系,你为什么不创建一个新的表来表示呢?既然你提到了customTagline只属于一个特定的用户。

+0

那是非常直接的方式,如果我只拉线你的建议是好的,但我周围有6款车型,其在相同的情况下跌倒,在这里我需要创建一个相同结构的6款新车,是可取的? – Senthil 2014-08-29 12:40:50

+0

如果您不确定,那意味着您没有足够的数据来做出决定。这意味着在当前情况下,任何选项都是很好的,所以只需创建表格和代码即可。在您滚动您的代码时,您将更深入地了解这些需求,那就是您将重新进行重构/规格化/非规范化表格的时间。这是我的方式。 @Senthil – neo 2014-08-29 13:02:16

+0

同意,感谢您的及时回复。 – Senthil 2014-08-29 13:39:56