问题标签 [non-relational-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - 分层、有序、键值存储?
我正在寻找具有以下功能的数据库系统:
- 分层(多维)键
- 每个维度的键排序
因此,如果我的密钥是这样的,App > User > Item
我可以运行如下查询:“该用户的下一个项目是什么?” 或者“这个应用程序的下一个用户是什么?”
我基本上想要一个多维树。我找到了GTM,想知道是否还有其他类似的产品。
python - 用于扭曲的非关系数据库
我正在寻找在异步模式下使用 twisted 的任何键值数据库实现。我的一个想法是将 Twisted Memcache API 与 MemcacheDB 一起使用。
这是其他解决方案吗?
database - 建议:菜鸟的非 RDBMS 数据库
对于基于 Erlang、Python 的新应用程序,我们正在考虑尝试非 RDBMS 数据库(只是为了它)。我研究过的一些数据库是 Mongodb、CouchDB、Cassandra、Redis、Riak、Scalaris)。这是一个简单要求的列表。
- 易于开发——我需要做一个快速的概念验证演示。所以数据库需要有很好的 Eralang 和 Python 适配器。
- 我正在开发一个新应用程序,其中我们有很多“连接”数据。有人推荐 Neo4j 用于类似图形的数据。有什么想法吗?
- 可扩展性——我们正在研究分布式架构,因此可扩展性很重要。
- 目前,性能(以任何形式)并不完全在我的列表中,我认为我们不会很快达到上述任何数据库的限制。
我只是在寻找非 RDBMS 数据库的起点。有什么建议吗?
google-app-engine - Google App Engine 和 Django-nonrel:数据库迁移
我刚刚在 GAE 和 Django-nonrel 上启动了“Hello World”应用程序。我看到在关系数据库和 Django-nonrel 上使用纯 Django 之间存在一些差异。最可悲的是非关系型数据库的南移系统无能为力。是否存在使用 GAE 将模型迁移到数据库的某种方式?如果不是,在这种情况下您会推荐什么模型开发策略?
database - 为什么要使用非关系数据库?
数据库的最新热潮似乎集中在非关系数据库上。为什么?好像有点适得其反。例如,以关系方式表达我的数据对我来说更有意义(Django + SQL for tables 中的示例代码):
SQL:
SQL 的强大之处在于,这些信息可以用 多种方式表达。当然,存在整个对象关系映射问题,但我将其视为一个特性,而不是一个问题。使用 SQL,我可以获取给定帖子中比昨天更早的所有不同评论,将所有这些评论整理在一起,并生成统计信息。非关系数据库也可以这样做吗?
使用像 MongoDB 这样的非关系型数据库似乎也会真正影响性能,因为您将立即获取整个对象图,而不是您最需要的。
有人可以向我解释使用非关系数据库有什么好处吗?
node.js - MongoDb 是否适合我的应用程序?
我正在 node.js 上构建一个应用程序,该应用程序具有多对多关系的用户和产品(一个用户有许多产品,同一个产品可能属于多个用户)。每个用户也有位置信息。
大多数情况下,我需要在用户第一次访问时进行大量写入(在随后的访问中写入一些内容),然后我需要匹配具有最多共同产品数量的用户,并返回相同的共同产品. 我可能还想按位置匹配用户(或按匹配位置对用户进行排序)
我现在正在使用 postgres,但我认为从长远来看我会更好地做 mongo。问题是我从来没有在 NOSQL DB 上工作过(不用担心;))
问题是,以下“模式”是否适合上述情况?
我认为,由于要求,我比嵌入更好。我对吗?您认为我应该将 products_id 存储在用户文档中吗?
谢谢!!
sql - 动态数据库/键 - 值/实体 - 键值困境
我从事关系数据库编程多年,但现在遇到了一个不寻常且棘手的问题:
我正在构建一个需要非常快速且易于定义的实体(由用户)的应用程序。然后可以创建、更新、删除这些实体的实例等。
我能想到的有两种选择。
选项 1 - 动态创建的表
第一种选择是编写一个引擎来动态生成表,并将数据插入到这些表中。但是,这将变得非常棘手,因为每个查询也需要是动态的,或者至少是动态创建的存储过程等。
选项 2 - 实体 - 键 - 值模式
这是我能想到的唯一现实的选择,我有 5 个表结构:
实体类型
EntityTypeID 整数
实体类型名称 nvarchar(50)
实体
实体ID int
EntityTypeID 整数
字段类型
字段类型ID int
字段类型名称 nvarchar(50)
SQLtype int
字段值
实体ID int
字段 ID 整数
值 nvarchar(MAX)
字段
字段 ID 整数
字段名称 nvarchar(50)
字段类型ID int
“FieldValues”表的工作方式有点像数据仓库事实表,我所有的插入/更新都可以通过填充“Key/Value”表值参数并将其传递给 SPROC(以避免多次插入/更新)来工作。
所有的表都会被大量索引,我最终会做很多自连接来获取数据。
我已经阅读了很多关于键/值数据库有多糟糕的信息,但对于这个问题,它似乎仍然是最好的。
现在我的问题!
- 除了这两个选项之外,任何人都可以提出另一种方法或模式吗?
- 选项二对于中型数据集(最多 100 万行)是否可行?
- 我可以使用的选项 2 是否有进一步的优化?
非常感谢任何方向和建议!
database - 属性值数据库最成熟和高性能的选择是什么?
我在电子健康记录领域工作,如果尝试使用关系数据库,我使用的标准 (http://www.openehr.org) 在许多用例中会造成严重的不匹配。
我已经设法开发了一些相当成功的方法来使用关系数据库来处理大部分树结构,但是如果我使用键值类型的存储,我可以做得更好。
问题是,RDMS 概念在市场上变得如此占主导地位,以至于成熟度几乎完全与关系数据库相关。每当有人考虑离开关系空间时,尤其是现在,NOSQL 之歌就会开始播放。大多数 NOSQL 选项都太年轻了,我很难投资它们来处理敏感的医疗保健数据。
所以我在非关系领域寻找成熟的、开源的、高性能的选项,尤其是那些便于键值类型操作的选项。例如,BerkeleyDB 就是这样一种选择,但 Oracle 当前的许可条款不适用于我。
我不需要 SQL,无论如何我都必须实现一种自定义查询语言(它已经定义为 openEHR 规范的一部分)。我不需要表格,因为我的数据都是树结构。我需要成熟度、稳定性和性能,我需要 ACID 合规性、可扩展性,我需要开源。我什至考虑过整合各种成熟的 Java 框架来实现这些目标,并在这里提出了一个问题,但似乎这不是一个现实的方法。
我是否缺少任何隐藏或明显的宝石?
php - Yii 如何让已知用户生成下拉列表?
我刚刚开始学习使用yii,并且已经设法做一些基本的事情。
假设我有两个简单的表:“用户”和“项目”,其中关系是一对多(一个用户可以有很多项目)
我已经使用 GII 生成了 CRUD,但是在“创建/编辑用户页面”中,它不提供下拉菜单,而只提供一个我需要输入用户 ID 的文本字段。
编辑项目时,我希望有一个下拉列表,我可以在其中选择用户(因此该元素应显示用户名列表)。
我假设 GII 无法为此生成控制器和查看代码
这样做的最佳做法是什么?
我已经按照http://www.yiiframework.com/doc/guide/1.1/en/database.arr中的说明声明了关系
和
django - 如何在 2 个字段上加入 Django 1.3 中的非关系模型
我有 2 个需要加入的现有模型,它们是非关系的(没有外键)。这些是其他开发人员编写的,我无法修改。
以下是对它们的简要描述:
模型过程
- 字段文件名
- 字段路径
- 其他领域
- 字段栏
模型服务
- 字段文件名
- 字段路径
- 现场服务名称
- 字段 foo
我需要在文件名和路径列上加入这两个模型的所有实例。在此连接发生之前,我必须将现有过滤器应用于每个过滤器。
例子:
A = Process.objects.filter(somethingelse=231)
B = Service.objects.filter(foo='abc')
结果 = A.filter(filename=B.filename,path=B.path)