前两天的面试题

本文分享了一个关于如何设计表来存储树状结构数据的方法,包括表结构的设计、存储过程的实现,以及通过递归填充树状结构的过程。强调了在获取机会的同时要做好充分准备的重要性。

挺可惜的,也不可惜,只能怪自已抓不住。

只顾着争取机会了,却没有做好准备,曾在初中一年级的时候,数学老师出了一道题,同学们都争先恐后的举手去答,我也不例外,我得到了机会,可发现只顾去抢机会了,却没在意看题,结果很显然没有答出来,被老师狠狠的训了一通,多年后的今天,犯了同样的错误。怪不得别人,我这个人就是不长记性!!要懂得在失败中吸取教训,下次做事前先三思。

废话少说,先来看题:

大概题意:给一个树状结构设计一个表来存数据,只需存节点的名称,并用存储过程求出某一节点的所有子节点

解答:

表设计:

Guid(pk,uniqueidentifier,not null)唯一标识

Name(nvarchar(50),null)节点名称  

Code(nvarchar(200),null)节点代码

Layer(int ,null)节点所在层数

 

 

其中Code的存取方式为

 001                                                         002                                                      003

001,001             001,002                     002,001            002,002                  003,001            003,002

001,001,001    001,002,001            002,001,001   002,002,001         003,001,001   003,002,001

 

用存储过程找出指定结点的所有子节点

 

CREATE PROCEDURE [dbo].[test]
@code varchar(200)

as
select * from 表名 where Code like @code+',%';

这种应用,我在一年前就做过了,做过后就扔了,没常拿出来看看,真是可惜了。

下面把树的填充也贴出来。

填充树自然是用递归了。

建一个Model类(以下model类为实际工作代码,拿来展示)

 再建一个Entity类

 

 

递归方法来填充Entity

递归填充树

 ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用ref参数,则方法定义和调用方法都必须显式地使用ref关键字。
out关键字也是使参数按引用传递。这与ref关键字类似,不同之处在于ref要求变量必须在传递之前进行初始化。若要使用out参数,方法定义和调用方法都必须显式地使用out关键字。

 

下面这个网站电脑卖的好便宜,好奇怪

http://www.ckaism.com

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值