0

所以我有一个 MySQL 驱动的 Rails 应用程序,它有一个帖子模型,我希望每个帖子都有一个与之关联的关键字列表。关键字非常具体,一个关键字在两个帖子之间共享是非常罕见的。

这里有三个选项:

  1. “关键字”属性中的逗号分隔列表
  2. 在“关键字”属性中有一个序列化数组
  3. 建立关键字模型并将每个关键字存储在自己的记录下,并将它们与具有 ID 的帖子相关联

哪个是最好的解决方案,为什么?

4

3 回答 3

1

四。ActsAsTaggableOn

关键字/标签非常有用,您会想一遍又一遍地使用它们。当好的轮子免费躺在那里时,你只是在重新发明一个轮子。

于 2013-04-05T20:11:50.787 回答
1

如果您想搜索标签,3,否则您将不得不或实例化搜索中的每个对象,或者执行类似 SQL 的查询,这将非常难看。

如果您不想查询标签,请将其序列化以使其可读并避免为此而使用表(和急切加载)。

于 2013-04-05T20:33:26.283 回答
0

一般来说,决定取决于您计划使用此关键字列表的目的。如果您打算对多条记录进行任何类型的聚合,将其放入单个属性(序列化或逗号)将使您的生活变得艰难。如果不是简单的总是一个不错的选择。

正如@Mori ActsAsTaggable 所提到的,尽管它最适合共享关键字(标签),但它是一个不错的选择。

于 2013-04-05T20:32:43.380 回答