任何允许您指定表的优化数据结构版本的数据库

我知道Redis允许您以优化的方式存储复杂的数据结构.但我想知道是否有任何数据库或设计模式允许您指定数据库的优化版本的数据库.

例如,要按文本快速查找内容,您必须求助于solr进行搜索,这是专门用于优化字符串查找的数据库.

另一个例子是如果你想为用户返回一个易于导航的角色对象,你可能会想要这样:

var user = { roles: { admin: true, principal: true, ... } } 

但是在数据库中,您可能有一个角色表和一个用户表,因此您可以进行连接并将其取回并最终在代码中手动构建该数据结构.

问题是,是否有任何东西允许您直接在数据库中指定数据的数据结构/形式,以便更快地进行查找.数据库允许您拥有作为原始解决方案的索引.想知道是否有更复杂的例子.例如,检查项目是否有标记的好方法是:

user.tags[tagName]

这意味着你的标签是这样的:

{ tagA: true, tagB: true, ... }

但你可能从数据库中得到它们:

[ { name: tagA }, { name: tagB } ]

所以想知道是否有办法告诉数据库,以这种“x”格式创建数据集的“优化版本”,而不必在应用程序层中手动执行此操作.想知道周围是否有任何工具或设计模式.

最佳答案 如果要优化特定的数据结构,可以在低级别数据库上自行优化,像SQLite一样简单,或者像PostgreSQL一样复杂,并通过添加数据库对象处理层使其易于使用.如果您不想自己优化它.根据我的经验,Django Web框架做得非常好,可以很容易地在RMDB中存储和接收对象,而不会限制我在数据库本身内修改的访问权限.

使用此解决方案,您可以像使用OODB一样使用RMDB,在结构中需要一些额外的设计(通过它的声音,您已经拥有).并且仍然允许您为特定的结构/访问要求选择优化的数据库存储引擎.

点赞