我正在为他们制作一些软件,我不确定采用哪种方法。我有永远不会改变的数据,并且具有层次关系,并将用于填充显示。有相当数量的这些数据。
我有以下选择:
1.一组枚举/对象 2.一个XML文件 3.嵌入式SQLite数据库
在这种特殊情况下,我认为枚举是最正确的方式,但我从代码中嵌入的数据中得到了一些气味。此外,我需要数据用于层次结构目的,使用枚举看起来有点麻烦。
数据库应该提供较少的性能影响并且易于使用,但对静态数据来说似乎有点过分。
这里的设计路径是正确的吗?
答案 0 :(得分:0)
尽管这里有格式,但这不是答案&#34 ;;在选择如何表示这些数据时,您需要自己回答一系列问题。
在我(太多年)的经历中,"静态数据永远不会改变"几乎从来没有真正的静态。这就要求以不需要更改源代码的形式存储数据,这将排除枚举。
示例:
我开发了一个系统来确定切割动物的最佳方法 根据可用屠体的重量和品种,屠体, 和传入的订单流。这个决定的关键输入之一 过程是对动物解剖学的描述,识别 哪些肉块来自哪个肌肉群,和 因此,一旦你拿出一个特定的剪裁,剩下什么部分。 该信息本质上是分层的。
你会认为这些信息是非常静态的;后 所有,动物的解剖结构都没有改变。但事实上,我们 发现我们需要每6个月增加一次数据, 添加新的切割方式的描述。
因为我认为数据是静态的,所以我在XML文件中描述了它 并在程序开始时阅读。但是在中编辑数据 这种形式很麻烦且容易出错。如果我让它完成,我 肯定会选择不同的存储形式。
如果要更改此静态数据,请考虑您需要对程序执行的操作。您是否需要添加新的决策逻辑和新类型,还是严格意义上是现有对象之间关系的变化?你将如何调试数据?你会在源代码管理中维护数据吗?
我还会考虑您想要访问此数据的方式。搜索它所需的灵活性越多,某种数据库的参数就越好。 @ rbaghbanli的观点也很好;您的决定可能基于代码运行的平台。
答案 1 :(得分:-1)
这取决于您正在构建的应用程序的类型。如果是企业系统或应用程序,则最好将其存储在企业数据库中。如果它是轻量级用户应用程序或移动应用程序,则最好将其存储为嵌入式JSON字符串。 XML有点过于冗长。