Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于数据库的XML_C#_Asp.net_Sql Server_Xml - Fatal编程技术网

C# 基于数据库的XML

C# 基于数据库的XML,c#,asp.net,sql-server,xml,C#,Asp.net,Sql Server,Xml,我有一个字符串列表,列表是不变的,不会改变,有12个字符串 在数据库表中,我有一个列,该列带有字符串的索引。 我不认为用一个单独的表来保存这些字符串是明智的,因为它们永远不会被更改,也不会将字符串本身保存在这个列中 因此,唯一的选择是以其他类型保存列表 将字符串保存在XML文件中并使用LINQtoXML将其加载到字典中怎么样。 如果是这样,那么使用datatable?这些字符串很可能会被SQL server缓存,并且几乎不会对性能造成影响。但在多个应用程序共享同一数据库的情况下,这将为您提供灵活

我有一个字符串列表,列表是不变的,不会改变,有12个字符串

在数据库表中,我有一个列,该列带有字符串的索引。
我不认为用一个单独的表来保存这些字符串是明智的,因为它们永远不会被更改,也不会将字符串本身保存在这个列中

因此,唯一的选择是以其他类型保存列表

将字符串保存在XML文件中并使用LINQtoXML将其加载到字典中怎么样。
如果是这样,那么使用datatable?

这些字符串很可能会被SQL server缓存,并且几乎不会对性能造成影响。但在多个应用程序共享同一数据库的情况下,这将为您提供灵活性。总的来说,除非你有/预计有数百万次数据库点击,否则请将它们保留在数据库中。

我同意Zepplock的观点,请将字符串保留在数据库中。您不必担心性能。其中一个重要原因是,如果您这样做,未来的开发人员将更容易找到字符串并理解其在应用程序中的功能,如果您将其存储在数据库中的适当上下文中。

听起来好像您在描述一个包含产品目录数据的表。建议将这些值保留在它们自己的行中,而不要作为XML数据类型或以XML格式存储在varchar列中

听起来,今天的数据似乎是静态的,很少有变化。通过使用XML存储,您将失去数据库关系性质的潜在未来优势


建议把它们放在桌子上。正如您所说,只有12个字符串/产品,性能命中率将为零。

这些字符串将用于什么?为什么不使用产品的资源文件或配置?定义,共有12种产品类型(常量和永不更改),因此当用户要求产品时,他需要获得定义。因此,我应该将它们放在单独的表中(即使它们是常量)并在用户请求从包含索引(外键)的数据库中输入时通过JOIN检索它们?是的,它们可以被其他表中的ID引用:如果他将此信息存储在其代码库中的XML文件中,如果它曾经被更改过,它将与代码的其余部分一起拥有版本控制历史。你是说应该坚持使用xml,因为版本控制更容易。如果需要对字符串进行版本控制,则可以很容易地在数据库中实现。数据库最擅长存储数据,如果字符串与应用程序的内容相关,那么它们应该与数据一起使用。在带有代码的版本控制系统中对其进行版本控制不是我的首选方式。