3

我正在开发一个支持多种语言的 CMS,我希望下拉显示“pageNames”,创建类似于下面的示例

Home Page
Second Page
-Child Page1
-Child Page2
Third Page
-Child Page1
-Child Page2
-Child Page3
--Sub Child Page1
--Sub Child Page2

下面是我用来存储页面的表结构。我使用 SQL 和 C# 代码进行了尝试,但无法正确处理。如果有人可以向我发送 SQL 查询,如果这可以仅使用 SQL 查询来实现,或者向我展示 C# 中的代码片段来执行此操作,我将不胜感激。

从我的角度来看,我的表结构看起来不错,也欢迎对此结构进行任何更改以提高性能

tbl_Language

LangID int   -- PK
LangName nVarchar(20) -- English, Arabic, Spanish
Lang_Code varchar(6)  -- en-US, ar-AE etc

tbl_Pages

pageID int
PageName nVarchar(50)
pageTitle nVarchar(200)
pageDesc nVarchar(400)
pageBody nVarchar(Max)
.....
.....
PageParent int
LangID int  -- FK
....
....

提前致谢

4

2 回答 2

0

如果您想在 sql 端执行此操作,请使用 Common Table Expressions 编写递归查询以遍历 sql 端页面的树结构。

查看这些链接以获取更多信息:

于 2012-01-06T10:18:38.757 回答
0

你看过使用hierarchyid吗?见: http: //msdn.microsoft.com/en-us/library/bb677173 (v=sql.100).aspx

当然,您需要 Sql 2008 或更高版本,但它适用于您正在尝试做的事情。

于 2012-01-17T22:17:16.370 回答