【问题标题】:Storing data in XML or SQL?以 XML 或 SQL 存储数据?
【发布时间】:2011-12-02 14:21:09
【问题描述】:

我正在开发一个 Windows Phone 7.5 应用程序。

我必须使用以下字段存储 22 个项目:

  1. 数字(整数)。
  2. 名称(字符串)。
  3. 描述(字符串)。

名称和描述将采用多种语言。

现在,我正在使用这样的 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<cards>
  <card id ="0" name="Mad" description="xxx" ></card>
...
</cards>

我没有经常使用 XML,我不确定哪种方法最好。

有什么建议吗?你给我推荐什么?我需要以不同的语言存储每个名称和描述。

【问题讨论】:

  • 好吧,如果只有22个,这个数量很少,我认为没有必要使用数据库。
  • 同意。此外,您需要支持的语言无关紧要 - XML 和大量 DB 支持字符集,例如 UTF-8。我会推荐最容易为您的应用实施的方法。如果您以后需要切换,您总是可以的。

标签: sql-server xml windows-phone-7 datasource


【解决方案1】:

我会按如下方式构建您的 xml

 <cards>
   <card id ="0">
      <name lang="en">Mad</name>
      <description lang="en">xxx</description>
   </card>
   <card id ="1">
      <name lang="fr">Brother</name>
      <description lang="fr">xxx</description>
   </card>
   .... etc ....
 </cards>

通过将其置于此结构中,每个元素只有 1 个属性,并且很容易找到您要查找的数据的子元素。

实际上还有一个问题可以解决这个问题 XML best practices: attributes vs additional elements

【讨论】:

  • 这使用了 XML 语言的内置支持,是一个很好的答案。
【解决方案2】:

阅读您的帖子和标签,我不明白您想将这些数据存储在 SQL SERVER 中。你可以有一个不同语言的表,根据这种语言,XML 必须包含属性名称和描述,如 name_ES、name_EN、name_FR、...(描述相同)。

然后,以编程方式,您可以让 DataSet 对象映射您的 SQL SERVER 表。如果我没记错的话,可以直接将你的 XML 解析为这个 DataSet 对象。

【讨论】:

    【解决方案3】:

    如果您只有少量这样的项目,将整个 XML 文件读入内存是没有问题的,SQL 不会给您带来太多优势。当您拥有大型复杂数据库并且您需要能够快速灵活地查询它时,SQL 就会发挥作用。如果您有大量数据(要加载到内存中)并且您需要有选择地从数据库中提取项目,那么 XML 很麻烦(您需要解析它并实现检测查询匹配的逻辑),而 SQL专为此而设计,速度快如闪电,查询可以任意复杂(好吧,在合理范围内)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多