1

我正在创建一个网站,其中所有页面都挂在数据库驱动的树层次结构上。

除了一个节点外,所有节点都有一个父节点。节点可能具有基于角色的读取权限。某些节点可能有特殊规则(例如:不在导航菜单中显示)。

节点可能表示到其他节点的链接(如 Windows 中的快捷方式)。节点通常代表页面。

页面呈现 HTML 内容或执行编程。某些页面可能是子树的根(备用母版页和样式表)。

请帮助我在 Microsoft SQL Server 中设置我的节点数据库以供 Linq to SQL 使用。

我有三个想法:

  1. 许多具有几乎为零的 nullalbe 字段的轻量级表。

    #1 许多轻量级表的 nullalbe 字段几乎为零

  2. 具有大量 nullalbe 字段的重量级节点表。

    #2 具有大量 nullalbe 字段的重量级节点表

  3. 两者中最好的(或最坏的):许多轻量级表的大量空外键。

    #3 许多轻量级表的大量空外键

您认为哪个最能代表数据?哪个最容易与 Linq to SQL 一起使用?

如何将我的数据完整性规则保存在数据库中?我如何在我的编程中最好地执行它们?

  • 节点必须是(但不能同时是)链接或页面。

  • 页面必须是(但不能同时是)html 或代码。

  • 链接可能不是根目录、html 或代码。

我可以制作具有这种结构的 ASP.NET 站点地图提供程序吗?我是不是该?


更新:我问了一个更一般的问题:

在 SQL 中处理一对一关系的最佳方法是什么?


相关问题:
如何在我的数据库中实施数据完整性规则?

4

1 回答 1

4

阅读您的帖子后,我的最初印象是,我非常不愿意让任何一种技术(在本例中为 linq)严重影响数据库架构设计,直至您似乎建议的程度。

我认为您的架构应该几乎相同,无论您随后选择哪种技术来构建您的业务/表示层。

我希望我没有误解你。

于 2008-09-11T16:07:33.327 回答