【发布时间】:2010-09-08 14:10:11
【问题描述】:
我正在创建一个网站,其中所有页面都挂在数据库驱动的树层次结构中。
除了一个节点之外的所有节点都有一个父节点。节点可能具有基于角色的读取权限。某些节点可能有特殊规则(例如:不在导航菜单中显示)。
节点可能表示到其他节点的链接(如 Windows 中的快捷方式)。节点通常代表页面。
页面呈现 HTML 内容或 execute programming。某些页面可能是子树的根(备用母版页和样式表)。
请帮助我在 Microsoft SQL Server 中设置我的节点数据库以供 Linq to SQL 使用。
我有三个想法:
-
许多轻量级的表几乎 零个 nullalbe 字段。
-
包含大量节点的重量级节点表 nullalbe 字段。
-
两者的最佳(或最差):很多 nullalbe 外键对许多 轻量级表格。
您认为哪个最能代表数据?哪个最容易与 Linq to SQL 一起使用?
如何将我的数据完整性规则保存在数据库中?如何在我的编程中最好地执行它们?
节点必须是其中之一(但不能同时是两者) 链接或页面。
页面必须是(但不能同时是)html 或代码。
链接不能是根目录、html 或代码。
我可以用这种结构制作一个 ASP.NET 站点地图提供程序吗?我应该吗?
更新:我问了一个更一般的问题:
What’s the best way to handle one-to-one relationships in SQL?
【问题讨论】:
标签: .net sql database linq-to-sql database-design