我一直在使用SQL Server 2014来存储数据库,以便将游戏用于多个桌面......这是一个足球游戏所以有很多桌子......玩家,教练,所有者,GM,球探,球队等...
我的问题是最终用户是否需要安装SQL服务器以利用游戏中的数据库?如果是这样,我需要切换到另一个选项,并想知道存储大量数据的最佳选择是什么,这些数据不需要最终用户安装特殊东西来使用它们?
CSV似乎是一个明显的简单答案,但我认为这样的数据太多,无法妥善处理CSV文件。
答案 0 :(得分:1)
您存储的数据,您对它的要求是什么?
这些数据是否应该对所有用户完全相同,而不是要编辑? 然后,您应该将数据存储在远程位置,以防止篡改,并且对数据所做的任何更改都将影响每个人。
数据是否应该跟随"游戏,篡改不是问题? 将它作为文件存储在游戏旁边,文件的格式由您决定,无论您选择何种格式,解析都需要一些时间。
如果选择1,则选择正确的数据库取决于数据的结构以及如何使用它。我认为这是一个完全不同的讨论,对于业余爱好项目而言,它并不重要。选择你最了解的。
如果您选择2,如果您不需要同时加载所有数据,将数据拆分为多个文件将大大提高性能。找出你需要的东西(IE:如果你只需要所有玩家信息,加载播放器文件;如果需要其他方式的数据,例如你以团队为基础加载,包括团队信息,玩家,比赛等;然后将包含所有团队信息的数据存储在一个文件中。)
根据您的需要,数据的格式相对不重要。如果它可以打开进行编辑,那么首选人类可读的格式,如XML或JSON。如果需要空格,请选择CSV。我在这里的主要提示是采用一种众所周知的格式,而不是创建自己的格式。您不仅会发现现有解析器为众所周知的格式,您以后的选项也会更加灵活。
答案 1 :(得分:1)
试试SQLite。它是一个轻量级的高性能数据库,具有索引,事务等现代功能。它也有ADO.NET组件。它很棒,它是开源的,而且是免费的。 SQLite的唯一缺点是它没有附带查看和操作数据库的工具,但您可以为此下载a separate tool。
您也可以使用Microsoft Access。您需要安装Access的副本才能创建新数据库,但修改或访问数据库所需的OLE DB组件是Windows的一部分。 Microsoft Access的数据库引擎没有SQLite那么快或可靠,但如果安装了Access,那么您可以使用很好的工具来查看数据库,创建新表等等。
答案 2 :(得分:0)
SQL Server Compact(又名SQL Server CE)是一个嵌入式数据库。它不需要最终用户安装任何东西。请务必使用版本4(https://www.microsoft.com/en-us/download/details.aspx?id=17876)。 3.5有一些非常严重的限制。 CE有一些差异(比如列默认值是列定义的一部分,而不是表级约束),但在大多数情况下,您不会遇到任何太令人惊讶的事情。 SQL Server CE也有LINQ和EF的官方实现。
答案 3 :(得分:0)
我相信到目前为止所有的答案都会增加讨论。我想把LocadDB(SQL Server)作为另一种选择。
作为旁注,根据您需要存储在文件中的信息量,您可能希望使用某些DBMS(本地或远程)。处理太多文件或包含太多数据的文件可能会非常麻烦和/或降低游戏性能。