问题标签 [static-data]

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 投票
2 回答
384 浏览

database-design - 管理数据库参考数据及其相关代码

参考数据或查找表是诸如 CustomerType、ProductType 等。它们很少更改,偶尔会添加新类型或淘汰旧类型。在代码中,它们经常被复制为枚举/常量,也用于填充组合框。添加新类型不应破坏现有应用程序,并且通常只需要这些新类型来支持新应用程序的功能,旧应用程序应该忽略它。

这种情况在大多数开发商店中都很熟悉,几年/几个月后它变得混乱、不受控制,如果数据库和代码不同步,就会发生坏事。

其他人如何处理这个问题?代码/数据库是什么样的,它是如何进行版本控制的?

0 投票
1 回答
86 浏览

sql - 就应用程序和测试中的静态数据提供建议

我正在一个非常典型的 asp.net 网站上工作,并使用 sql server 2005 作为数据库。我创建了一个模型 dll,其中包含应用程序的典型业务逻辑。

应用程序依赖于存储在数据库中的一些静态数据,缺乏更好的持久性存储,但由于应用程序依赖于这些数据才能正常运行,我觉得这些是模型的属性,应该始终可以访问应用程序,我应该能够运行单元/集成测试以确保这些数据可用,这有点违背对数据库进行单元测试的原则。

那么有没有人有处理模型持久静态数据的好方法?我也一直在考虑使用嵌入式 xml 文件,但这也有明显的缺点。

0 投票
1 回答
1891 浏览

java - 参考数据模式

类似于这个线程,但不完全是:How To Cache Information In A Threadsafe Manner

处理“参考数据”的通常模式是什么——应用程序经常读取的数据,通常在数据库或属性文件中外部化,但很少更新(几天、几周、几个月)?当数据更新,它将在外部更新。

这通常是我可以注入 DAO 并因此能够管理其自己的内容的单例吗?我喜欢在这个服务上公开一个 refresh() 方法来强制刷新(即,通过一个 MBean - 所以我不必反弹应用程序)的想法。

从另一个 SO 线程来看,听起来人们可能会在必要时实例化 DAO,并在该级别透明地缓存。

我有点喜欢将单例服务注入从数据库加载数据的真实 DAO 或返回硬编码响应的模拟/测试替身的想法。但是,如果我要通过 java 枚举将服务实现为单例,这会使通过 Spring 将其连接起来有点问题。

那么,其他人通常如何处理参考数据?随意查询但在后台进行缓存?还是单独的内存服务?

0 投票
2 回答
119 浏览

c++ - iphone c++上的静态数据

我有国家的数据,包括国家的名称、人口、面积等......

存储它们的最佳方式是什么,我在想头文件中的静态数组......?

我主要将 c++ 用于 iPhone 上的某些游戏

我是否应该考虑其他选项,例如 sqlite、plist、字典 ....?

0 投票
3 回答
101 浏览

iphone - 使用 iPhone 应用程序传送静态数据

我正在制作一个游戏,我需要能够发送一些关于游戏的各种船只的数据以及应用程序将使用的有关它们的详细信息。我正在寻找理想的方法来做到这一点。现在我已将范围缩小到使用 SQLite、Core Data 或属性列表。现在我也想记住的是记忆。因为这是一个游戏,所以我需要小心这一点,而且由于属性列表需要全部加载到内存中,我担心它们可能并不理想。我知道 SQLite 应该有比这更好的性能,而且我听说 Core Data 的性能甚至比这更好。所以我的问题是,您认为使用 iPhone 应用程序传送静态数据的最佳方式是什么?

0 投票
1 回答
460 浏览

java - 在 Google App Engine 中使用 Java,存储和访问大型静态数据的最佳方式是什么?

我的大部分应用程序“动态”数据都存储在数据存储区中。

但是,我也有大量静态数据,这些数据只会随着应用程序的新版本而改变。一系列平面文件似乎比在数据存储中管理它更简单。

有标准的解决方案吗?图书馆如何快速轻松地加载/解析此内容?将这些数据推送到数据存储区是否更有意义?哪个表现更好?

还有其他人有这个问题并且有他们可以分享的战争故事吗?

0 投票
1 回答
100 浏览

database - 参考数据的删除/失效方法

根据我在这里找到的讨论:数据库:删除或不删除记录,我想特别关注参考数据,对此添加一些想法,并询问您的一般首选方法,或者基于您的标准决定您采用哪种方法。

让我们为客户的“请求数据库”假设以下数据结构,而请求可以通过各种渠道(电话、邮件、传真……;我们的“我主要关注的参考数据表”)传递:

首先,让我们假设这两个表中有以下数据:

要求:

渠道:

那么,假设以下要求,你如何解决这个问题:

  1. 频道可能会随着时间而改变。这意味着:他们的描述可能会改变。可以添加新的,仅从某些特定数据开始有效。频道可能会失效(在某个特定日期之前)

  2. 出于报告和监控的目的,可能需要确定最初是使用哪个渠道提交请求的。

  3. 对于新请求,应该只允许当前“有效”的通道,而对于预先存在的请求,也应该允许在该特定日期有效的通道。

在我的理解中,这显然需要一种超越删除标志的更丰富的失效方法,可能是结合了参考数据表的“ValidFrom / ValidTo”方法。

另一方面,这在请求的数据捕获过程中会遇到一些困难,因为对于新请求,您只显示它们当前可用的通道,而对于维护先前存在的通道,需要在创建此记录时所有可用的通道显示。这不仅从开发的角度来看很复杂,而且对用户来说也可能是不直观的。

您通常如何为随着时间的推移可能出现的参考数据设置数据模型?那你如何创建你的用户界面呢?对于正确的数据库设计,您还考虑了哪些其他参数?

0 投票
1 回答
1543 浏览

database-design - 事务数据库中的快照设计以及参考数据的版本控制

免责声明:我已经阅读了有关堆栈溢出和 Internet 上的快照和版本控制主题的所有内容。我的要求不是审计跟踪或数据库级快照的版本跟踪。我花了超过 1 周的时间自行研究并考虑可能的选择。抱歉,我可能错过了一些链接 - 如果我的问题的解决方案已经在其他线程中讨论过,请指出我那里。

有点长;请多多包涵。

情况如下:我们正在尝试创建一个通用设计,以将事务数据的快照存储在我们的事务数据库中,并保留参考数据的修订历史。

作为业务流程的一部分,用户可以按下按钮发布特定对象。为了说明的目的,假设用户可以在谈判开始之前发布来自供应商的提案。然后,通过协商过程,在不同的时间点,用户可以发布提案数据。该提案包含预算、销售目标和许多其他项目。对提案进行快照时,必须对所有链接实体进行快照。最后,经过谈判,签订合同。此时,必须创建合约的完整快照。并非合同中的所有实体都存在于提案中——有很多重叠的实体,但提案和合同都有独特的实体。

我们必须保留这些已发布的版本和最新的活动版本。已发布的版本可在网站上获得,供供应商和管理团队参考。并非所有已发布的版本都在网站上提供,但最后发布的提案和最新发布的合同始终在网站上可用。该网站也必须从同一数据库中填充。

此外,财务用户可以决定仅对预算进行快照,而销售经理可以对销售目标进行快照。因此,快照可在多个粒度上使用。

我们还需要跟踪主数据的版本。随着时间的推移跟踪对关键主数据列的所有更改是一项业务需求。例如,我们有与销售目标相关的区域信息。区域的名称可以更改,我们希望跟踪这些更改。让我们假设在提案时,区域的名称是 R1,并创建了一个快照。然后,区域名称更改为 R2,然后创建另外 2 个快照。我们希望能够在这些时间点将销售目标链接到正确的区域名称,而不一定要链接到最新的区域名称。

我们在建模方面具有一定的灵活性,因为我们同时拥有事务数据库和数据仓库数据库,我们可以决定将其中一些信息存储在事务数据库或数据仓库数据库中。

这是我们的设计。我们有一个发布表,它捕获有关已发布数据的基本信息——发布者和发布日期、原因和发布对象的类型(提案或预算或销售目标)。

我们将快照存储在与原始数据相同的表中。因此,提案快照将与提案表中的实时提案一起存储。我们在每个必须发布的表中都有一个名为 Publication ID 的列。此列是 Publication 表的 FK。如果发布 ID 为空,则该记录是活动版本。

我意识到这篇文章很长。因此,我没有列出场景细节,而是想在思维导图中快速总结设计注意事项。 快照设计注意事项

现在我们倾向于两种解决方案 - 两者都将存储所有数据的快照,无论它是否已更改。在保持表结构完整的同时仅维护增量将需要一个非常复杂的存储过程,该存储过程必须在任何快照对象的每次插入/更新时运行。我不想走这条路,因为这会花费更长的时间,而且数量也不会那么大。

解决方案 1:每次发布对象(如提案或预算)时,我们将填充 XML 树并将其保存在数据库中。网站上只需要提供最新版本,很少需要旧版本。鉴于此,由于使用 XML,我会遇到很大的性能问题吗?我们使用 SQL Server。数据量不是很大。

解决方案 2:所有事务表都有一个发布 ID,参考数据有开始和结束日期。每当发布对象时,我们都会复制所有事务记录并将发布 ID 放在那里,我们将复制所有参考数据记录并将快照日期作为结束日期。这将允许我们在发布过程之外对参考数据进行正常版本控制。

我需要有经验的人就这两种方法的缺点以及是否还有其他更好的方案提出意见。

0 投票
4 回答
2308 浏览

visual-studio-2010 - 在 Visual Studio 2010 数据库项目中生成种子数据

我在 Visual Studio 2010 中有一个数据库和一个数据库项目。我成功地推断了数据库项目中的架构,但我还需要以某种方式导入几个表(国家、州、用户类型等)中的数据,这些表是参考表,而不是参考表真正的数据表。

有办法吗?

到目前为止,我发现的唯一方法是在 SQL Server Management Studio 中生成数据脚本,并将此脚本放在数据库项目的部署后脚本文件中。

有更简单的方法吗?

0 投票
1 回答
1934 浏览

android - android使用sqlite作为静态数据

可能重复:
Android 预填充数据库

我想使用 SQLite 作为静态数据。我的意思是在应用程序首次启动之前预加载数据。此数据是静态的 = 没有插入、删除或更新。我只想使用 sql 数据库查询和索引的全部功能。因为我的 SQLite 数据库应该有很多很多数据,所以我不想让初始加载时间长的用户感到不安。

有没有办法做到这一点(预加载、预定义、预插入的数据库)?