问题标签 [schema-design]
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.
json - 使用没有数组的嵌套文档为我的 JSON 定义有效的猫鼬模式?
我对 JavaScript 和 Mongoose 很陌生。我以设计有点奇怪的 JSON 结尾,我想通过 mongoose 坚持下去。
这是此 JSON 的示例:
a1、a2是可变的(并非总是有 a1 和 a2,也许还有其他) something,something_else也是可变的,可以是不同的标识符 - 它们是属性 -。
也许设计这样一个奇怪的 JSON 是我的错,但是为它定义 Schema 的最佳方法是什么?
我有多种选择,但都不能说服我:
这非常难看,但现在我可以将我的 JSON 存储为 myJSON[0] = {name: "theName"...}。Ofc 是最丑陋的,但与我的原始数据结构最接近。
另一个
这更漂亮但是我发现了一些麻烦,最终的 JSON 将有许多我在原始 JSON 上没有的数组和间接:
有没有办法从 Schema 中删除所有这些烦人的数组?
更新:
最后我解决了我的问题,因为我可以稍微调整我的数据模型:
然后“道具”包含我想要的所有JSON(名称放在外面)。这不是我的想法,但它工作正常(我认为)。
mongodb - mongodb vs. postgres:建模条件
我们现在正在为一个项目选择一个数据库。候选人是 mongodb 和 postgres。我们的用户需要定义条件逻辑,例如用户定义条件(作为字符串)“x 发生”、“y 离开”等,然后可以将它们连接到条件“如果 x 发生 AND(y 离开 OR z 出现)......” .
在单个 json 文档中执行此操作似乎比在关系数据库中更具可读性。
你有什么方法可以在 postgres 中合理地建模吗?我知道 postgres 9.2 将支持 json,但查询功能似乎很笨拙。
在 mongo 中,动词(“x发生”)将在条件之间重复。动词更新将影响多行。你看到这里有问题吗?
编辑: mongo 文件可能如下所示:
mongodb - 关于我的案例 MongoDB 模式设计的意见
这是 MongoDB 上一个非常常见的问题:何时嵌入以及何时引用。
然而,就我而言,这似乎是一个两难的境地。我有一个文档,其中包含我可以嵌入它的参考,但它会花费我磁盘的大小。但是如果我做一个参考,它会给我带来相当大的性能成本。
这是一个例子,假设我有这个成员的“详细信息”作为我的问题:
我希望该会员的详细信息出现在该会员“asdf”制作的每个博客中,因为显示的每个博客都会显示会员详细信息。所以我可以为我的博客文档做 2 个选项:
首先,通过仅放置成员的 _id 来进行引用:
或者第二,将成员嵌入到博客中:
所以第一个选项需要另一个成员查询,这是一个性能问题。然而,第二个选项更快,因为我只需要查询一次,但是随着博客数量的增加,我的磁盘会因为嵌入文档“成员”的冗余数据而变得更大。
PS:在这个例子中可以看到,Member 和Blog 的关系是一对多的,所以一个member 可以有很多blog,但是member 的detail 变量保持不变;“名称”和“网站”。
在这种情况下有什么更好的意见吗?如果您也有第三种解决方案,那就太好了。之前谢谢。
mongodb - MongoDB Schema Design 排序服务
我有以下对象公司、用户和订单(包含订单行)。用户下达 1 个或多个订单行的订单,这些订单与公司有关。本公司下单时间仅为一周。
我不确定在哪里放置订单数组,它应该是它自己的集合,包含指向用户的链接和指向公司的链接,还是应该位于公司之下,或者最终是否应该位于订单之下用户。
数字方面,我需要计划 50k+ 的订单。
明智的查询,我可能会主要查看公司的订单,但我需要为特定用户找到公司的订单。
nosql - Hbase 架构设计 - 需要建议
我最近开始试验 Hbase 和 hadoop 堆栈。我正在尝试从头开始构建应用程序。我正在为将使用 google n-gram 数据集的应用程序设计架构。
我意识到可以将数据集制作成一个模型,其中 ngram 作为行键,一个列族具有许多限定符(年、页数、match_count),或者模型可以将 n-gram 作为行键和多个列族年,page_count,match_count。
我意识到模型取决于我想使用这些数据的方式,但我想了解这两种方法的优缺点。
干杯,德瓦拉克
sql - 如何在数据库中实现元数据目录和自动化 SQL?
我在这里阅读了关于 5NF、EAV 和 6NF 的讨论,以及对“自动”处理元数据和复杂 SQL 的目录的需求。这在实践中是如何实施的?
PerformanceDBA 在 6NF 和 EAV 上写了几个提到目录的答案,例如在以下问题中:
尤其是PerformanceDBA所写的Multiple fixed tables vs flexible abstract tables
“例如,对于带有目录的 6NF 数据库,我有一组 proc 将 [重新] 生成执行所有 SELECT 所需的 SQL,并且我为所有用户提供 5NF 视图,因此他们不需要知道或理解底层 6NF 结构。它们被排除在目录之外。因此,更改很容易且自动化。EAV 类型手动执行此操作,因为没有目录。”
mongodb - 使用 MongoDB 记录文件访问
我正在设计我的第一个 MongoDB(和第一个 NoSQL)数据库,并希望将有关文件的信息存储在一个集合中。作为每个文件文档的一部分,我想存储文件访问(读取和写入)的日志。
我正在考虑创建一个日志消息数组作为文档的一部分:
每条日志消息将包含时间戳、访问类型和访问文件的人的用户名。我认为这将允许非常快速地访问特定文件的日志,这可能是对日志执行的最常见操作。
我知道 MongoDB 有 16Mbyte 的文档大小限制。我想经常访问的文件可能会突破这个限制。
有没有更好的方法来为这种类型的日志设计 NoSQL 模式?
csv - 如何制作 schema.ini - 需要帮助
早晨,
我是新手,所以只需要快速了解如何创建 schema.ini 文件。
我需要有 2 个列,一个用于产品 sku,它是一个字符串值。一个是价格,它是一个十进制值。
我目前在我的 schema.ini 中有以下内容,但我不确定它们应该是什么,我已将 sku 作为文本完成,但不确定小数点。
performance - MongoDB 数据架构性能
我试图了解 MongoDB 文档中数组和哈希的内部分配和放置(据我所知,这是通过数组实现的)。
在我们的领域中,我们的文档包含数千到数十万个键值对,其逻辑分组深度可达 5-6 级(想想嵌套散列)。
我们用一个点来表示键中的嵌套,例如 ,x.y.z
在插入 MongoDB 时会自动变成如下所示:
最常见的操作是增加一个值,我们使用 atomic 执行此操作$inc
,通常使用单个更新命令一次增加 1000+ 个值。随着时间的推移添加新密钥,但并不频繁,例如每天 100 次。
我想到另一种表示方法是不在名称中使用点,而是使用其他分隔符并创建一个平面文档,例如,
鉴于键值对的数量以及$inc
更新和新键插入方面的使用模式,我正在寻找关于两种方法之间权衡的指导:
磁盘空间开销
$inc
更新性能新键插入的性能
mongodb - Mongodb Schema设计适合的一个建议
嗨,我是 mongodb 的新手。我正在使用 java。
我的关系表中有 2 个表系统 system_properties。
像这样的东西。
我正在尝试为此创建一个模式。例如:用于插入一个文档
这是此设计的最佳架构吗?
为了避免连接,我们只嵌入文档。
我怀疑 system_id : 100 (关系表中的外键)是否必要,因为“_id” = 100 (关系表中的主键)也指相同。