代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

如果我不打算将数据保存到SQL数据库中,我应该在哪里保存数据?

  •  3
  • Sergio Tapia  · 技术社区  · 15 年前

    我正在制作一个类似于《魔兽世界》的百科全书程序。我不会将数据保存到SQL数据库中,但当我确信有其他方法可以替代这些较轻的情况时,我总是很难做到这一点。

    例如,我的程序不会通过用户输入创建新数据,也不会通过用户输入删除数据。只是一个程序,它将显示我编码的信息。不多不少。

    我应该在哪里保存这些东西?我的意思是,当我发布程序时,将它们存储起来以便部署。

    我将主要保存字符串变量和一些视频/动画( see my other question )

    谢谢你的帮助。像往常一样,你们摇滚!

    5 回复  |  直到 15 年前
        1
  •  3
  •   Ash    15 年前

    好的旧文件系统有什么问题?

    只需在应用程序文件夹下创建一个子文件夹,在代码中,始终使用与应用程序文件夹相关的路径引用此子文件夹中的文件。如。

    string imagePath=Path.Combine(Environment.CurrentDirectory,"SubFolderName\\picture.jpg");
    

    我自己也使用过sqlite,我很喜欢它,但即使它对于您的需求来说也可能是杀伤力太大了,因为您不需要执行许多查询操作。

    此外,关系数据库(如SQL Server/sqlite)并不适合存储二进制数据。他们当然可以,但这并不是他们最好做的,因为他们会遇到扩展问题。

    如果您有很多二进制文件,如图像、音乐、视频等,那么我的第一选择就是文件系统。

    部署非常简单,只需将所有必需的资源文件放入子文件夹,然后将子文件夹放入应用程序文件夹。

    另一个选项是将文件存储为嵌入的程序集资源。这可能在主应用程序可执行文件中,或者在单独的dll程序集中(如果您有更大的文件)。你说用户不会添加或删除文件,所以这是一个可行的选项。

        2
  •  5
  •   joshperry    15 年前

    静态数据数据库有什么问题?没有数据是静态的,如果在数据库中使用DB,那么用于创建数据包的管理/设计程序将更加容易。如果您将它存储在平面文件中,您真的想编写查询逻辑来决定如何查找数据还是只发出一个简单的SQL查询?

    使用 System.Data.Sqlite 它允许您使用嵌入式数据库,一个没有服务器进程的单一数据文件。这是一个非常流行的数据库,我敢打赌你每天都与它交互。此外,它还支持Visual Studio中用于设计和与数据交互的所有出色的RAD功能。

        3
  •  2
  •   Mark Ewer    15 年前

    我的答案完全取决于你所说的数据量。从纯设计的角度来看,您应该始终将数据与应用程序逻辑分开。所以,您需要一个外部数据文件。但是,如果您没有那么多的数据,而且它是相对静态的,那么您可以将它放在XML文件中,然后使用Linq to XML查询数据。看看 XDocument class .

    也就是说,数据库通常会让您的生活更轻松,尤其是当您获得一个好的对象到关系映射工具或对象数据库时。我建议你研究一下使用 SubSonic SimpleRepository 将数据放入 SQLite database . 或者,更好的是,看看使用 pure object database like DB4O !

        4
  •  0
  •   µBio    15 年前

    XML或二进制文件都是我的建议

        5
  •  0
  •   asteio    15 年前

    我的第一个想法是XML(首选)或二进制,如MarkEwer和Yetapb所建议的。sqllite建议听起来也不错。

    另一个选项是使用OLEDB提供程序的Excel电子表格。您将使用SQL语句来读写数据。如果你选择Excel路线,要知道有一些怪癖需要习惯,比如: 1)在工作簿中指定要引用的工作表的方式(类似于在SQL中引用表的方式+美元符号和一些括号)。 2)如果你有一列只有文本,但是一个单元格有一个数字,除非你稍微按摩一下数据,否则OLEDB会打嗝。我知道这听起来很奇怪,但这只是一个提醒。

    我确信在使用.NET中的Excel时,还有其他一些小的怪癖需要克服,但我只在现实世界中做了两次(尽管这两次都涉及大量数据)。我绝对不会推荐它用于企业环境。

    我建议您将多媒体存储在您的文件系统中,无论您选择哪种方式。然后,只要让数据记录(无论它们是在SQL、Excel、XML中还是在二进制文件中)指向文件名。它将使您的数据管理更加容易。