静态数据应存储在数据库中还是应用程序中

时间:2016-01-24 16:44:48

标签: c# sql asp.net-mvc database-design

我正在为他们制作一些软件,我不确定采用哪种方法。我有永远不会改变的数据,并且具有层次关系,并将用于填充显示。有相当数量的这些数据。

我有以下选择:

1.一组枚举/对象 2.一个XML文件 3.嵌入式SQLite数据库

在这种特殊情况下,我认为枚举是最正确的方式,但我从代码中嵌入的数据中得到了一些气味。此外,我需要数据用于层次结构目的,使用枚举看起来有点麻烦。

数据库应该提供较少的性能影响并且易于使用,但对静态数据来说似乎有点过分。

这里的设计路径是正确的吗?

2 个答案:

答案 0 :(得分:0)

尽管这里有格式,但这不是答案&#34 ;;在选择如何表示这些数据时,您需要自己回答一系列问题。

在我(太多年)的经历中,"静态数据永远不会改变"几乎从来没有真正的静态。这就要求以不需要更改源代码的形式存储数据,这将排除枚举。

示例:

  

我开发了一个系统来确定切割动物的最佳方法   根据可用屠体的重量和品种,屠体,   和传入的订单流。这个决定的关键输入之一   过程是对动物解剖学的描述,识别   哪些肉块来自哪个肌肉群,和   因此,一旦你拿出一个特定的剪裁,剩下什么部分。   该信息本质上是分层的。

     

你会认为这些信息是非常静态的;后   所有,动物的解剖结构都没有改变。但事实上,我们   发现我们需要每6个月增加一次数据,   添加新的切割方式的描述。

     

因为我认为数据是静态的,所以我在XML文件中描述了它   并在程序开始时阅读。但是在中编辑数据   这种形式很麻烦且容易出错。如果我让它完成,我   肯定会选择不同的存储形式。

如果要更改此静态数据,请考虑您需要对程序执行的操作。您是否需要添加新的决策逻辑和新类型,还是严格意义上是现有对象之间关系的变化?你将如何调试数据?你会在源代码管理中维护数据吗?

我还会考虑您想要访问此数据的方式。搜索它所需的灵活性越多,某种数据库的参数就越好。 @ rbaghbanli的观点也很好;您的决定可能基于代码运行的平台。

答案 1 :(得分:-1)

这取决于您正在构建的应用程序的类型。如果是企业系统或应用程序,则最好将其存储在企业数据库中。如果它是轻量级用户应用程序或移动应用程序,则最好将其存储为嵌入式JSON字符串。 XML有点过于冗长。