【问题标题】:alternative to using many to many relations with simple data in a relational database替代对关系数据库中的简单数据使用多对多关系
【发布时间】:2011-11-04 04:00:01
【问题描述】:

我正在开发一个 ruby​​ on rails 项目,该项目需要记录一些简单的用户数据,这些数据适合多对多关系(将其视为一组用户兴趣)。我在使用 has_many :through 和 HABTM 处理多对多关系方面经验丰富,但是当事情足够简单以至于可以表示为一个单词时,创建新模型并必须进行所需的连接似乎有点矫枉过正访问它。除了兴趣本身的名称之外,我认为不需要记录其他属性,因此使用模型的论点没有说服力。我知道 noSQL 对此有好处,但我想知道从性能和良好设计的角度来看,使用关系数据库执行此操作的正确方法是什么(我正在使用 postgres)。我正在考虑使用的方法是使用文本数据类型将其记录为用户模型中的分隔字符串,然后将其解析为数组。或者这可以是一个表示哈希键数组的字符串,然后查询哈希表或键/值存储数据库以获取数据。我敢肯定有很多不同的方法可以解决这个问题,但我很高兴知道最佳实践是什么,因为我希望我将来必须经常实施这一点。此外,如果您能推荐任何有助于这方面的工具/宝石/框架,那将非常有帮助。

谢谢。

【问题讨论】:

    标签: ruby-on-rails database-design relational-database


    【解决方案1】:

    基本上以某种方式序列化数据并将其存储在预先知道您不会查询它的列中。我见过人们使用的一种相当紧凑的解决方案是将其存储为 json,这样您就不必做任何复杂的事情。您只需要一个足够大的 varchar 类型来存储 json 字符串。

    【讨论】:

      猜你喜欢
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      相关资源
      最近更新 更多