Which is the best database schema for my navigation?我正在创建一个网站,其中所有页面都悬挂在数据库驱动的树层次结构中。 除一个节点外,所有节点都有一个父节点。节点可能具有基于角色的读取权限。一些节点可能有特殊的规则(例如:不显示在导航菜单中)。 节点可能表示到其他节点的链接(例如Windows中的快捷方式)。节点通常代表页面。 页面显示HTML内容或执行编程。某些页面可能是子树的根(备用母版页和样式表)。 请帮助我在Microsoft SQL Server中设置节点数据库,以供Linq to SQL使用。 我有三个想法:
许多轻巧的桌子几乎
重量级节点表有很多
两者最佳(或最差):很多
您觉得哪个最能代表数据? Linq to SQL最容易使用哪个? 如何将数据完整性规则保留在数据库中?如何在编程中最好地实施它们?
我可以使用这种结构来制作ASP.NET站点地图提供程序吗?我是不是该? 更新:我问了一个更一般的问题: 在SQL中处理一对一关系的最佳方法是什么?
相关问题: 阅读您的文章后,我的第一印象是我不愿意让任何一种技术(在本例中为linq)在您似乎建议的范围内对数据库架构设计产生重大影响。 我认为您的架构应该几乎相同,而不管您选择了哪种技术来构建业务/表示层。 我希望我没有误会你。 我同意在考虑Linq的情况下进行低音设计。 Joe Celko的书"用于Smarties的SQL中的树和层次结构"有许多关于模式的好主意,以表示您要执行的操作。 Linq应该能够处理这些问题。 查看这篇文章。 它讨论了如何在数据库中存储树结构,并提供了一些不错的示例代码来帮助您入门。 本文与LINQ无关,只是为您提供了一种在数据库中存储树结构的好方法。 希望这可以帮助。 |