我有大约20个不同的表,每个表都有不同的父/子关系。我最近被要求根据所有这些表格为我们的网站创建面包屑和站点地图。
我有一个想法是从每个表中删除父/子关系,并基本上创建一个包含id和parentId的表,每当我需要提取父子关系时,我只需要将parent_child_relationships表连接到无论我从哪个桌子专门拉出来。
这有意义吗?
无论如何,这个想法的问题在于我不喜欢它。哈哈。
还有其他人对如何做到这一点有任何其他想法吗?或者基于由20个左右的表组成的站点构建面包屑和站点地图的正确方法是什么?
如果有帮助,我的网站由asp.net,ColdFusion组成,并使用MSSQL数据库。
谢谢!
答案 0 :(得分:1)
不要让UI的实现影响模型的设计,尤其不影响您的数据库。原型前端,涉及您的客户,给他们一个声音。构建您的面包屑和站点地图,而不是最初绑定到您的实际数据库。一旦你的客户说“那就是我们想要的东西,就像那样”,然后冻结原型,然后处理实际的实现 - 你的应用程序将如何请求数据,你将使用什么类型的数据对象然后构建你的数据库,
“我有一个想法,就是从每个表中删除父/子关系,并基本创建一个包含id和parentId的表”
这不是一个非常可扩展的解决方案,不要*反向规范化您的数据库。遵循标准关系数据库建模/规范化技术。许多小型综合表,有很多关联表。