问题标签 [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.

0 投票
1 回答
4512 浏览

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(名称放在外面)。这不是我的想法,但它工作正常(我认为)。

0 投票
1 回答
569 浏览

mongodb - mongodb vs. postgres:建模条件

我们现在正在为一个项目选择一个数据库。候选人是 mongodb 和 postgres。我们的用户需要定义条件逻辑,例如用户定义条件(作为字符串)“x 发生”、“y 离开”等,然后可以将它们连接到条件“如果 x 发生 AND(y 离开 OR z 出现)......” .

在单个 json 文档中执行此操作似乎比在关系数据库中更具可读性。

你有什么方法可以在 postgres 中合理地建模吗?我知道 postgres 9.2 将支持 json,但查询功能似乎很笨拙。

在 mongo 中,动词(“x发生”)将在条件之间重复。动词更新将影响多行。你看到这里有问题吗?

编辑: mongo 文件可能如下所示:

0 投票
1 回答
206 浏览

mongodb - 关于我的案例 MongoDB 模式设计的意见

这是 MongoDB 上一个非常常见的问题:何时嵌入以及何时引用。

然而,就我而言,这似乎是一个两难的境地。我有一个文档,其中包含我可以嵌入它的参考,但它会花费我磁盘的大小。但是如果我做一个参考,它会给我带来相当大的性能成本。

这是一个例子,假设我有这个成员的“详细信息”作为我的问题:

我希望该会员的详细信息出现在该会员“asdf”制作的每个博客中,因为显示的每个博客都会显示会员详细信息。所以我可以为我的博客文档做 2 个选项:

首先,通过仅放置成员的 _id 来进行引用:

或者第二,将成员嵌入到博客中:

所以第一个选项需要另一个成员查询,这是一个性能问题。然而,第二个选项更快,因为我只需要查询一次,但是随着博客数量的增加,我的磁盘会因为嵌入文档“成员”的冗余数据而变得更大。

PS:在这个例子中可以看到,Member 和Blog 的关系是一对多的,所以一个member 可以有很多blog,但是member 的detail 变量保持不变;“名称”和“网站”。

在这种情况下有什么更好的意见吗?如果您也有第三种解决方案,那就太好了。之前谢谢。

0 投票
1 回答
3412 浏览

mongodb - MongoDB Schema Design 排序服务

我有以下对象公司、用户和订单(包含订单行)。用户下达 1 个或多个订单行的订单,这些订单与公司有关。本公司下单时间仅为一周。

我不确定在哪里放置订单数组,它应该是它自己的集合,包含指向用户的链接和指向公司的链接,还是应该位于公司之下,或者最终是否应该位于订单之下用户。

数字方面,我需要计划 50k+ 的订单。

明智的查询,我可能会主要查看公司的订单,但我需要为特定用户找到公司的订单。

0 投票
1 回答
300 浏览

nosql - Hbase 架构设计 - 需要建议

我最近开始试验 Hbase 和 hadoop 堆栈。我正在尝试从头开始构建应用程序。我正在为将使用 google n-gram 数据集的应用程序设计架构。

我意识到可以将数据集制作成一个模型,其中 ngram 作为行键,一个列族具有许多限定符(年、页数、match_count),或者模型可以将 n-gram 作为行键和多个列族年,page_count,match_count。

我意识到模型取决于我想使用这些数据的方式,但我想了解这两种方法的优缺点。

干杯,德瓦拉克

0 投票
1 回答
1251 浏览

sql - 如何在数据库中实现元数据目录和自动化 SQL?

我在这里阅读了关于 5NF、EAV 和 6NF 的讨论,以及对“自动”处理元数据和复杂 SQL 的目录的需求。这在实践中是如何实施的?

PerformanceDBA 在 6NF 和 EAV 上写了几个提到目录的答案,例如在以下问题中:

0 投票
2 回答
275 浏览

mongodb - 使用 MongoDB 记录文件访问

我正在设计我的第一个 MongoDB(和第一个 NoSQL)数据库,并希望将有关文件的信息存储在一个集合中。作为每个文件文档的一部分,我想存储文件访问(读取和写入)的日志。

我正在考虑创建一个日志消息数组作为文档的一部分:

每条日志消息将包含时间戳、访问类型和访问文件的人的用户名。我认为这将允许非常快速地访问特定文件的日志,这可能是对日志执行的最常见操作。

我知道 MongoDB 有 16Mbyte 的文档大小限制。我想经常访问的文件可能会突破这个限制。

有没有更好的方法来为这种类型的日志设计 NoSQL 模式?

0 投票
1 回答
5539 浏览

csv - 如何制作 schema.ini - 需要帮助

早晨,

我是新手,所以只需要快速了解如何创建 schema.ini 文件。

我需要有 2 个列,一个用于产品 sku,它是一个字符串值。一个是价格,它是一个十进制值。

我目前在我的 schema.ini 中有以下内容,但我不确定它们应该是什么,我已将 sku 作为文本完成,但不确定小数点。

0 投票
1 回答
314 浏览

performance - MongoDB 数据架构性能

我试图了解 MongoDB 文档中数组和哈希的内部分配和放置(据我所知,这是通过数组实现的)。

在我们的领域中,我们的文档包含数千到数十万个键值对,其逻辑分组深度可达 5-6 级(想想嵌套散列)。

我们用一个点来表示键中的嵌套,例如 ,x.y.z在插入 MongoDB 时会自动变成如下所示:

最常见的操作是增加一个值,我们使用 atomic 执行此操作$inc,通常使用单个更新命令一次增加 1000+ 个值。随着时间的推移添加新密钥,但并不频繁,例如每天 100 次。

我想到另一种表示方法是不在名称中使用点,而是使用其他分隔符并创建一个平面文档,例如,

鉴于键值对的数量以及$inc更新和新键插入方面的使用模式,我正在寻找关于两种方法之间权衡的指导:

  • 磁盘空间开销

  • $inc更新性能

  • 新键插入的性能

0 投票
3 回答
97 浏览

mongodb - Mongodb Schema设计适合的一个建议

嗨,我是 mongodb 的新手。我正在使用 java。

我的关系表中有 2 个表系统 system_properties。

像这样的东西。

我正在尝试为此创建一个模式。例如:用于插入一个文档

这是此设计的最佳架构吗?

为了避免连接,我们只嵌入文档。

我怀疑 system_id : 100 (关系表中的外键)是否必要,因为“_id” = 100 (关系表中的主键)也指相同。