与非常小的数据集,对政策,我的工作通常是坚持他们进入文本的文件,但以我的经验这可能是一个开发头疼的问题。数据一般来自数据库和当它不,处理参与制定这/储存,它通常是隐藏在代码。与数据库的数据通常可以看到的所有数据提供给你和你的方式与其它涉及其他数据。

有时候真的很小集的数据,我只是将它们存储在一个内部数据结构在代码(如Perl hash)但是当一个改变是必要的,它手中的开发。

那么,你如何处理小组不经常改变的数据?你有没有设置条件的时候使用一个数据库表或文本文件或者...?

我想只是使用一个数据库表一切但我不确定是否有任何影响到这一点。

编辑: 对上下文:

我已经要求把一个新的接触形式在网站上对于少数几家公司,要添加更多偶尔的未来。除此之外,公司没有联系人的电子邮件地址..用户在这些公司(如,他们发表的工作,通过他们自己的账户)。尽管如此,现在我们想要一个"投机应用程序"类型的功能和形式都需要一个电子邮件地址发送这些应用程序。但是,我们也不想把一个电子邮件地址作为一个属性的形式或其他垃圾邮件发送者可能只使用它作为一个开放的电子邮件网关。所以很明显,我们需要一个ID->contact_email类型的关系的公司。

所以,我可以添加一个列表数以百万计的行其中将被使用,从字面上看,大约20倍或者创建一个新的表至多是将举行大约20个行。通常我们如何处理这在过去只是为了创建一个讨厌的文本文件并阅读。但是这造成了维护的噩梦这些文本的文件常常是看数据时,它们所依赖的变化。也许这是一个错误的过程,但是我只是有兴趣听一听见这一点。

有帮助吗?

解决方案

如果这些是类似配置的小数据,我使用一些简单和通用的格式。 ini,json和yaml通常都可以。 Java和.NET粉丝也喜欢XML。简而言之,使用一些你可以轻松读取到内存中对象的内容而忘记它。

其他提示

将它放在数据库中。如果它不经常更改,请将其缓存在中间层。

立即想到的例子是适合存储为枚举的内容以及适合存储在“查找”中的内容。数据库表。

我倾向于“画线”。如果它将导致数据库中的列包含“幻数”,则规则如下:映射到枚举值,然后枚举应该作为查找表存在。如果它与存储在数据库中的数据无关(例如,应用程序配置数据而不是用户生成的数据),则它一直是枚举。

当然,它取决于用户的软件工具已经开发了使用集的数据,无论大小?

它可能只是他们知道Excel,使你的工具,就必须分析。csv文件中,他们创造。

如果这是写的开发,那么谁在乎你用什么。我不喜欢凌乱的数据库与轻微或暂时的数据。

我们有一个标准的配置文件格式(键:值)和一个处理它的类。我们只是在所有项目中使用它。大多数情况下,我们只是为我们的应用程序(移动电话开发)设置持久属性,这是一个合适的事情。 YMMV

如果程序访问数据库,我会将所有内容存储在那里:更容易备份和移动数据。

对于没有数据库访问权限的小程序,我将我的数据存储在.net设置中,这些设置存储在xml文件中 - 当然这是c#的一个功能,所以它可能不适用于你。

无论如何,我确保将所有数据存储在一个地方。通常是数据库。

您是否考虑过 sqlite ?它是基于文件的,它可以解决您“只是一个文件可能会”的感觉。 (零配置),但它是一个非常好的数据库,并且非常好地扩展。它支持许多API,并且有众多前端来管理它。

我会将它添加到主表中的数据库中:

  1. 备份和恢复(你确实要恢复这个文本文件吗?)
  2. Adhoc查询(因为你可以使用SQL工具并将其加入其他数据库数据)
  3. 如果数据库列为空,则它的存储要求应该是最小的(如果它是Oracle中表的末尾的NULL列,则没有任何内容)
  4. 如果您想拥有多个应用程序服务器会更容易,因为您不需要保留一些额外配置文件的多个副本
  5. 将它放入小孩子桌只会使设计复杂化而不会带来任何实际好处
  6. 无论如何,您可能已经在数据库中的同一行进行了处理,因此性能不太可能成为问题。如果不是,可以将其缓存在内存中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top