2011-08-26 121 views
0

我正在开发一个ruby on rails项目,该项目需要记录一些适合多对多关系的简单用户数据(将它想象成一个用户兴趣集)。我对使用has_many:through和HABTM进行多对多的关系很有经验,但是当事情足够简单以至于它可以被表示为一个单词时,创建一个新模型并且必须执行所需的连接访问它。我不觉得记录其他属性的兴趣本身的名称是非常需要的,所以使用模型的论点并不具有说服力。我知道noSQL可以做到这一点,但我想知道用关系数据库做这件事的正确方法是什么(我使用postgres),无论是从性能和良好的设计角度来看。我想要使​​用的方法是使用文本数据类型将其记录为用户模型中的分隔字符串,然后将其解析为数组。或者这可以是表示散列键数组的字符串,然后该散列键查询散列表或键/值存储数据库以获得数据。我确信有许多不同的方法可以解决这个问题,但是我会很高兴知道最佳做法是什么,因为我预计我将来会在很大程度上实现这一点。此外,如果您可以推荐任何有助于此工作的任何工具/宝石/框架,那将非常有帮助。替代使用关系数据库中简单数据的多对多关系

谢谢。

回答

1

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