【发布时间】:2012-11-17 22:37:36
【问题描述】:
我编写了一个使用 SQL SERVER 数据库的 ASP.NET 应用程序。在修改数据库期间,一位经验丰富的 .NET+DBMS 专家表示,关联/映射多个表的问题之一可以通过 .NET XML 字符串优雅地解决。我从来没有听说过这种技术,但不要听起来对这种“黑客”一无所知,我不能问他。有没有办法像常规数据库表一样插入/更新/删除 XML 字符串(不使用 Linq to XML)?
【问题讨论】:
-
我认为它们只是意味着将 XML 存储在数据库中(在文本列中),而不是试图将所有数据规范化到其他表中。这是一种有时可行的方法,但坦率地说,我通常最终只是希望我已经对数据进行了规范化。
-
我不知道他是什么意思,但是当他说在会议中使用 XML 字符串而不是这么多表时,我惊呆了。当我提出架构@MikeChristensen时,他不止一次说过
-
老实说,这是您应该与他进行的讨论。吞下你的骄傲,问问他的意思,让他带你看一个简单的例子。开发者不是无所不知的,我们不可能无所不知。
-
这绝对是一种方法。如果您总是需要一次加载所有数据,这比执行一堆 JOIN 更快。缺点是您无法真正查询该数据(尽管某些 RDBS 具有特殊的 XML 列类型并支持数据中的 XPath 查询),并且如果您需要升级/更改内容,这可能会非常痛苦。
-
@Shah 我同意,但下一次会议将在一周后,因为他正在国外旅行 + 他是那些客户端专家之一。所以,我别无选择,只能在这里问。我问过团队中的每个人是否理解他的意思。我别无选择,只能询问堆栈溢出。