GUID为主键编号的树形表结构该如何插入数据?

hebaobao19880921 2011-08-01 09:26:49
如果是INT类型为主键的表,我们的树形结构很容易就出来
id name pid
1 xx 0
2 xx 0
3 xx 1
4 xx 2
....

但是我现在的主键是GUID同样的表结构 树形如何显示出来?
...全文
209 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
highpr 2011-08-01
  • 打赏
  • 举报
回复
可以用递归

或者循环加左连接
红魔大卫 2011-08-01
  • 打赏
  • 举报
回复
你在定义一列 子节点指定他的父节点GUID

ID NAME PARENTID
SD DF NULL
DF SD SD
RF FD SD
GE GE DF
NH DF NULL

显示效果如下
效果ID ID Name
1 SD DF
1-1 DF SD
1-2 RF FD
11-1 GE GE
2 NH DF
逗号爱麦蒂 2011-08-01
  • 打赏
  • 举报
回复
如果要排序的话,这位兄弟的说法在理

[Quote=引用 3 楼 cxs861226 的回复:]

跟int型主键一样用 不过楼主需要再加一个排序的字段
[/Quote]
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wxr0323 的回复:]
没懂啥意思

不都是一样吗?

只要parentsID 和ID匹配上
[/Quote]
GUID 不像ID 可以自增长 GUID是唯一的 每次都要new一个.
我刚才是搞不懂 该如和去将ID和PID 插入数据形成树结构 因为每次new一个都是新的ID
这样就是
id name paid
guid1 xx guid2
guid3 xx guid4
..
子夜__ 2011-08-01
  • 打赏
  • 举报
回复
没懂啥意思

不都是一样吗?

只要parentsID 和ID匹配上
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hebaobao19880921 的回复:]
引用 6 楼 cxs861226 的回复:
id name pid sort
guid1 xx 0 1
guid2 xx 0 2
guid3 xx guid1 1
guid4 xx guid2 1

pid也是guid类型 第一行和第2行 插入0??
[/Quote]
那个发懒 没给改 呵呵 你随便找个不可能出现的GUID格式的guid值写进去 当最高级的父节点就行了
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cxs861226 的回复:]
id name pid sort
guid1 xx 0 1
guid2 xx 0 2
guid3 xx guid1 1
guid4 xx guid2 1
[/Quote]
pid也是guid类型 第一行和第2行 插入0??
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
id name pid sort
guid1 xx 0 1
guid2 xx 0 2
guid3 xx guid1 1
guid4 xx guid2 1
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cxs861226 的回复:]
跟int型主键一样用 不过楼主需要再加一个排序的字段
[/Quote]举个栗子
truecoffeefox 2011-08-01
  • 打赏
  • 举报
回复
试了试,我记错了
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
跟int型主键一样用 不过楼主需要再加一个排序的字段
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 truecoffeefox 的回复:]
guid同样可以order by,记得结果顺序和插入先后顺序是一致的
[/Quote]

不太明白??
truecoffeefox 2011-08-01
  • 打赏
  • 举报
回复
guid同样可以order by,记得结果顺序和插入先后顺序是一致的
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 cxs861226 的回复:]
引用 19 楼 hebaobao19880921 的回复:
引用 18 楼 cxs861226 的回复:
FolderId FolderName ParentId Sort
158E3A41-600E-427E-814C-D8BC37F506B9 a 00000000-0000-0000-0000-000000000000 1

你这个我明白了 pid随便找一个guid的值 那么我插入第……
[/Quote]
实在很感谢你的帮忙
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 hebaobao19880921 的回复:]
引用 18 楼 cxs861226 的回复:
FolderId FolderName ParentId Sort
158E3A41-600E-427E-814C-D8BC37F506B9 a 00000000-0000-0000-0000-000000000000 1

你这个我明白了 pid随便找一个guid的值 那么我插入第2个的时候 值指向的是FID还是新生成的?
[/Quote]
第2个 是什么 和158E3A41-600E-427E-814C-D8BC37F506B9 一级的吗 一级的FID就是00000000-0000-0000-0000-000000000000 是158E3A41-600E-427E-814C-D8BC37F506B9下级的FID就是158E3A41-600E-427E-814C-D8BC37F506B9
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 cxs861226 的回复:]
FolderId FolderName ParentId Sort
158E3A41-600E-427E-814C-D8BC37F506B9 a 00000000-0000-0000-0000-000000000000 1
[/Quote]
你这个我明白了 pid随便找一个guid的值 那么我插入第2个的时候 值指向的是FID还是新生成的?
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
FolderId FolderName ParentId Sort
158E3A41-600E-427E-814C-D8BC37F506B9 a 00000000-0000-0000-0000-000000000000 1
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 cxs861226 的回复:]
引用 15 楼 hebaobao19880921 的回复:

去试试有问题再来问 自己试的过程中就明白了
[/Quote]
create table t_Folder
(
FolderId uniqueidentifier primary key default(newid()) not null,--唯一标识ID 文件ID
FolderName nvarchar(50) not null,--文件名称
ParentId uniqueidentifier null,--上级文件ID
CreateOn datetime not null,--创建时间
CreateBy UniqueIdentifier default(newid()) not null,--创建人
ModefyOn datetime null,--修改时间
ModefyBy uniqueidentifier default(newid()) not null --修改人

)
GO
这是我的表 你试试 我现在的服务器上已经存在了一个根目录 就是最高节点的文件夹
cxs99999 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hebaobao19880921 的回复:]
[/Quote]
去试试有问题再来问 自己试的过程中就明白了
hebaobao19880921 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zminwj 的回复:]
引用 10 楼 hebaobao19880921 的回复:
引用 9 楼 wxr0323 的回复:
没懂啥意思

不都是一样吗?

只要parentsID 和ID匹配上

GUID 不像ID 可以自增长 GUID是唯一的 每次都要new一个.
我刚才是搞不懂 该如和去将ID和PID 插入数据形成树结构 因为每次new一个都是新的ID
这样就是
id name paid
gu……
[/Quote]

可以说的更详细一些吗?GUID以前没用过
加载更多回复(1)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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