活着的死人 发表于 2015-1-16 22:32:37

MSSQL网页编程之关于树型布局的表,及排序的成绩

使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性排序|树型布局|成绩
方才一同事碰着一个树型布局表的排序的成绩,让我想到一个埋没很深的BUG。我一般对树型布局的表都是如许计划的:在表中与排序相干的有三个列,ID,ParentID,TreeKey

ID:本笔记录的独一主键
ParentID:父纪录的编号
TreeKey:暗示层级布局,形如xx.xxx.xxxx

关头是TreeKey,我之前都请求存进父ID的编号,像如许

IDParentIDTreeKey
---------------------------------------------------------------------
1       NULL           1
2       1           1.2
3       1           1.3
...
10       1           1.10
11       1           1.11

像如许的话,依照TreeKey举行排序就会呈现成绩,由于TreeKey是个字符串,而1.10会排到1.2,1.3之前,很明显,这不是我们要的了局。要办理实在也很复杂,在编号后面补0,好比,1.10就写成0001.0010,1.2就写成0001.0002,如许排序就不会有成绩了。

这让我想起很早前看的微软的一个有关树的软件代码,就看到他们是以000x.000x这类体例举行处置的,事先我还感到他们怎样这么贫苦,如今想来,才发明是本人蒙昧了,呵呵。
2008年1月16号MySQLAB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。

冷月葬花魂 发表于 2015-1-19 16:23:14

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

透明 发表于 2015-1-28 05:41:02

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

愤怒的大鸟 发表于 2015-2-5 14:29:26

分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。

小魔女 发表于 2015-2-12 06:48:24

而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~

admin 发表于 2015-3-2 23:46:05

另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);

第二个灵魂 发表于 2015-3-11 07:35:51

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

莫相离 发表于 2015-3-17 23:10:22

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

飘飘悠悠 发表于 2015-3-25 07:29:35

对于微软系列的东西除了一遍遍尝试还真没有太好的办法
页: [1]
查看完整版本: MSSQL网页编程之关于树型布局的表,及排序的成绩