我正在为我们当地的高中(无偿服务)写一个小程序。该程序有一个界面允许用户进入学校假期。这是一个简单的独立Windows应用程序。
我应该使用什么格式存储数据?一个大的关系数据显然是过度的。
我的初步计划是将数据存储在XML文件中。同事们一直建议我使用JSON文件,Access数据库,SQL Lite和SQL Server Express。甚至有关于旧学校INI档案的建议。
答案 0 :(得分:10)
这样的项目习惯于变得更大,更快,如果他们这样做,你的XML文件将变得复杂并且成为管理的负担。
我不建议将数据存储在xml文件或json中 - 它们只是一个不同名称的文本文件,都存在同样的问题 - 你无法控制谁编辑它们。
使用某种db,首先从小的db开始(Access,SQLLite)
修改强>
根据您的最新评论,前滚到用户使用该应用程序两年的时间点。
现在更是如此
使用SQL处理所有这些问题/问题都更容易/更有效。此外,您生成的代码库将更有意义。遍历XML并不是最好的事情。
此外,如果您的用户群已经熟悉Excel,则将Excel链接到SQL数据库(并生成自定义结果)要比使用XML执行相同操作要容易得多。
答案 1 :(得分:3)
我不得不接受Json的回答和SQL Lite。
另一个选择是使用包含在所有窗口(since Windows 2000),ESENT中的内置数据库。有一个codeplex项目,可以轻松使用http://managedesent.codeplex.com/
答案 2 :(得分:3)
你考虑过使用SQLite吗?它将导致一个小的.s3db文件。 SQLite被各种桌面应用程序用于本地存储。
有一个SQLite .NET library允许您使用ADO.NET来CRUD您的数据。
查看Mike Duncan's article on how to get started with SQLite in .NET。
答案 3 :(得分:2)
嗯,显然SQL Express是一个完整的数据库 - otohj它可能有意义。如果他们已经拥有数据库,为什么不使用数据库?;)
否则我可能会使用XML文件。
答案 4 :(得分:2)
我建议使用XML文件和类型化数据集 您需要确定放置XML文件的位置。
请注意,如果您希望允许多个用户使用它,则需要才能使用数据库,例如Access或SQL Server。
答案 5 :(得分:1)
我会去
答案 6 :(得分:1)
xml文件似乎是个不错的选择。使用Linq to xml,从对象/对象读取/写入文件应该非常容易。查看XDocument和XElement类 Access数据库,SQL Lite和SQL Server Express看起来像是一种过度杀伤力。你真的需要一个数据库来存储简单的日历数据吗?你的申请会增长吗?
答案 7 :(得分:1)
从“简单的独立Windows应用程序”来看,这对我来说并不重要。我会选择最简单的,或者你最熟悉的东西。 XML非常有用,但是格式化的平面文件可能同样合理。
答案 8 :(得分:0)
我会使用序列化的类。
答案 9 :(得分:0)
如果您使用数据库而不是某种文本文件,则需要考虑一件事:您不再是“简单的独立Windows应用程序”。现在你(很可能)有一个安装程序要写。