请教一个菜鸟问题,xml与关系数据库

oxforce 2013-10-30 10:30:23
我想设计一个面向大型机械类产品的信息系统,需求是以每一个不同的产品为核心,将和该产品相关的所有信息(比如需求分析、设计方案、生产厂家、用户分析、用户建议、部件承包商、产品功能性能、产品可靠性、产品开发过程文件等等)都关联进来,积累数据,以web方式呈现给客户,方便公司的查询和统计等;

我想使用xml来存储信息,一个xml文件存储一个产品的信息,这样客户浏览一个产品的相关信息时较为直观清晰快捷,而且数据结构调整也灵活,但是针对不同产品进行查询时却很不方便(比如想查询某部件承包商都生产过哪些产品),需要打开所有xml进行遍历,查询效率低下,怎么解决这个问题?

同时请教怎样将xml的优点与关系数据库查询效率高的特点结合起来使用?
...全文
182 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2013-10-30
  • 打赏
  • 举报
回复
OPENXML效率是不会高的 。如果有可能,尽量不要用XML格式的。
LongRui888 2013-10-30
  • 打赏
  • 举报
回复
xml效率不高的时候,也可以建立索引,下面的例子:


create table dbo.book  
    (BookID int identity(1,1) primary key,  
     BookNM char(100) not null,  
     AuthorID int not null,  
     ChapterDESC XML null  
    )  
go 


--1.建立主xml索引   
create primary xml index idx_xml_primary_book_ChapterDesc  
on dbo.book(ChapterDesc)  
  
  
/*=======================================================  
2.建立辅助xml索引,下面的参数用于辅助索引,和xquery优化相关:  
  
A.value辅助索引用于根据模糊路径创建索引。  
B.path辅助索引根据路径和节点值创建索引。  
C.property辅助索引根据某个路径查询节点值,来创建索引  
========================================================*/  
create xml index idx_xml_value_book_ChapterDesc  
on dbo.book(ChapterDesc)  
using xml index idx_xml_primary_book_ChapterDesc  
for value  
  
  
--3.查看xml索引元数据   
select * from sys.xml_indexes  
  
select *  
from sys.indexes  
where name in ('idx_xml_primary_book_ChapterDesc',  
               'idx_xml_value_book_ChapterDesc')  

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧