问题标签 [dynamic-schema]

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 投票
3 回答
456 浏览

.net - SubSonic 动态模式:SelectList

设想

我正在为我的最新项目使用 SubSonic。首先要做的事;这个项目仅限于使用 .net 3.0 并且 SubSonic 非常棒。我喜欢它。

但是,我在自定义方面遇到了一些麻烦。客户要求我们使用两个 SQL Server 2005 数据库,其中一个将复制另一个,减去一些列。

乍一看,这似乎很简单。但是,SubSonic 默认抓取所有列,导致 SQLExceptions。我想优雅地逐个表地限制选择列表。

例如,下面的代码可以解决问题,但我宁愿每次新查询时都不需要这样做:

问题

上述方法使我的代码膨胀,并且不适用于FetchByXSubSonic 生成的内置方法。有没有办法在一个表格的基础上优雅地设置默认的 SelectList ?

笔记

我曾尝试在运行时在我的部分类中从模式中删除列,但是看起来像ColNameColumn在集合中查找特定索引的列,Columns所以我的计划被挫败了。

我知道我知道

请不要“你是个白痴,你为什么要这样做?” 答案。我知道很可能有更好的方法,这似乎有点老套,但这就是我要说的。我需要一个不纠缠的解决方案。

0 投票
3 回答
1258 浏览

objective-c - 在 Core Data 中伪造动态模式?

通过阅读有关 Core Data 的 Apple Docs,我了解到当您需要动态模式时不应使用 Core Data。如果我想为用户提供创建自己的属性的能力,在核心数据模型中,如果我创建一些“虚拟”属性,如“自定义十进制 1”、“自定义十进制 2”、“自定义文本 1”,它会起作用吗?用户可以为自己的目的命名和使用的“自定义文本 2”等?

显然这不适用于关系,但对于简单的属性,这似乎是一个合理的解决方法。在大多数用户未使用的实体上创建一堆虚拟属性会显着降低他们的性能吗?你们中有人尝试过这样的事情吗?谢谢!

0 投票
3 回答
792 浏览

c# - Azure: How to save IDictionary at TableStorage?

I have a class with an IDictionary. The size of this object isn't fix to any particular size. The idea with this is to have a Dynamic Schema of my object. I want to store this object in the TableStorage. How can I do this? And how can I retrieve this information from store after this inside my object with the IDictionary again??

Thanks!!

0 投票
2 回答
78 浏览

asp.net-mvc-2 - Azure:使用 TableStorage 的灵活架构

我需要制作一个 asp.net MVC 2 c# webapp,每个租户都可以为一个类定义一些特殊字段。例如,在同一个应用程序中,一些用户会有“年龄”字段,其他用户会有其他字段,不一定是“年龄”。最好的方法是什么?有任何博客/教程/书籍有这方面的例子吗?

谢谢!

0 投票
1 回答
847 浏览

objective-c - 核心数据动态实体

我希望能够基于将在另一个实体中定义的属性创建一个动态实体。例如:

实体:生命形式属性->名称:字符串

实体:LifeformCharacteristics 属性->名称:字符串属性->类型:字符串

实体:动态目录

因此,特征实体将是一个由用户添加的任何内容填充的实体。一个示例特征可以是名称:身高类型:数字。所以这些特征定义了我想要的动态目录。因此,应使用属性高度创建 DynamicCatalog。

DynamicCatalogs 还必须在表中可见,以便用户可以在目录中添加和删除项目。

我可以通过我的 DataModel 构建和管理前 2 个实体,但第 3 个是动态的,我不知道该怎么做。我希望使用核心数据将管理数据的麻烦降到最低。

这篇文章是我找到的最接近答案的东西,但我现在不确定要显示或重新组织这样的集合:Faking a dynamic schema in Core Data?

0 投票
0 回答
335 浏览

jpa - JPA 存储过程动态模式

我正在使用 JPA 2.1 eclipselink 从数据库中调用存储过程,我不想硬编码模式名称。有没有办法在模式之间动态切换?

我正在使用 JPA 2.1、EclispseLink 2.5.2、weblogic 12.1.3

已编辑:架构名称未知,因此我无法为每个架构创建映射文件。另外,我的数据库中可能有 5-10 个模式。我想要的是一种去数据库的方法,选择一个模式名称并在运行时切换它们

0 投票
1 回答
1855 浏览

ruby - 在 postgres 中使用动态模式

我必须决定如何实现动态模式。我将尝试对我的问题进行更多描述。

我使用最新版本的 postgres 数据库,应用程序是用 Ruby 和 Hanami 编写的。我需要实现视图,我将在我们的应用程序中显示用户列表(表格视图)。这是第一个要求,它需要包含动态数据。例如,用户有姓名和出生日期,我将此数据存储在用户表中。在其他表中,我存储与用户相关的指标,例如查看次数和评论数。这只是数据的一部分。我有更多与我的用户相关的表,我需要将它们加入一个视图。听起来不是很动态。我知道。但我还有另一个要求。我想允许用户将自定义列添加到我的表格视图中。

此时,我们有一个包含以下预定义列的表:

我们可以添加一些自定义的。

现在它变得动态。这不是结束。我需要在此列上添加过滤。因此,例如,如果给定用户有我之前提到的列,我应该允许过滤所有列(预定义和自定义)。我正在尝试研究如何实现此功能。

现在是问题部分:) 我正在考虑如何存储这些数据。我正在考虑将它作为 JSONB 列存储在我的 postgres 中。其规模约为 5kk 的用户。所以这意味着该表中有 5kk 行。没那么多。我想知道使用动态过滤器过滤这些数据。我尝试为 5kk 表做一些基准测试,如果我使用分页(不带索引)效果很好。查询整个数据集需要 10 秒,所以并不完美。

问题

  1. JSONB 是个好主意吗?我不确定是否可以定义正确的索引,如果我将动态过滤这些数据(每个查询都可以不同)。如何为这种情况定义索引?
  2. 将预定义的列存储为表中的普通列并且仅在 JSONB 中存储自定义列是一个好主意吗?它会给我带来任何好处吗?
  3. 我应该使用 postgres 吗?我不相信 postgres 对于这种规模来说还不够好,我更喜欢不改变工具。

感谢所有的答案。我在动态模式方面没有丰富的经验,所以每个技巧都很有用;P

0 投票
1 回答
318 浏览

mongodb - 将数据从无模式数据库迁移到关系数据库:MongoDB 到 Snowflake

我们有一个用例引导我写这篇文章,我相信你们中的许多人都会遇到这种情况。情况是通过单个 Talend 作业将多个集合从 MongoDB 迁移到 Snowflake 数据库,并将集合的顶级节点保留为 Snowflake 表中的单个字段。

现在我们知道 Talend 不支持 MongoDB 源的动态模式,因为 MongoDB 集合不强制使用模式,这意味着我们必须为我们想要摄取的每个现有/新集合创建单独的作业/子作业必须重新设计工作以应对文档中的未来更改,同时确保其始终有效,因此我们必须寻找替代解决方案。

这是方法,

第一步:从 MongoDB 集合中获取所有顶级键及其类型。我们使用了$objectToArarray的聚合来将所有顶部键和值对转换为文档数组,然后使用$unwind$group以及$addToSet来获取整个集合中不同的键和值类型。

}

第二步:在 Mongo Datatype 和 Snowflake Datatype 之间创建一对一的映射。我们创建了一个名为“ dataTypes ”的哈希映射来存储这些信息。或者,此信息可以存储在表格或文件等中。

第三步:将键与雪花进行比较:首先我们查询雪花INFORMATION_SCHEMA表是否存在,如果不存在则创建表,如果存在则检查文档中字段的更改并添加或修改雪花表中的那些列。通过使用第二步中的“数据类型映射”并迭代第一步中的键来生成 DDL 脚本

第四步:使用mongoexport命令将数据从 MongoDB 卸载到本地文件系统:

这是从第一步中的键准备的。

第五步:使用Snowsql的PUT命令将 .csv 文件从本地文件系统暂存到雪花暂存位置。

第六步:将数据从暂存位置加载到雪花表

在这里指定 file_format 和模式是可选的,我们使用了正则表达式,因为我们在一个雪花阶段为每个集合暂存多个文件。

第七步:维护一个集合列表,该列表可以放在本地文件系统的文件中或数据库表中,在 Talend 作业中迭代集合列表,并通过参数化集合名称、表名称,通过上述步骤处理每个集合,文件名和暂存名称等在作业中。

0 投票
2 回答
104 浏览

javascript - 如何根据值使猫鼬模式动态化?

我是猫鼬的新手,我搜索了很多,但找不到答案。请帮助,提前谢谢。

我可以有一个依赖于isVoter值的模式吗?例如,如果isVoter的值为false,那么我们应该有这样的模式:

0 投票
0 回答
26 浏览

json - 如何在 Snowflake 中读取 JSON 的动态更改架构

我们必须读取一个其 Schema 动态更改的 JSON 文件,并通过更改更改的 schema 每天将其写入雪花表。