Database design 如何在数据模式模型中有效地设计动态层次结构?

Database design 如何在数据模式模型中有效地设计动态层次结构?,database-design,Database Design,为了澄清这一点,让我们假设我的数据库中有用户和userstats,还有与这两个表关联的城市、州、县和地区等信息。在这个场景中,我可以通过隔夜或增量过程轻松地将我的userstats汇总到城市、州、县和地区级别 另一种情况是,我没有像城市、州、县这样的固定组,但我希望某些超级用户能够灵活地创建自己的组,并以以下形式手动绑定用户: User1| User2| - group1 User3| -> group3 User4| User5| - group2 Us

为了澄清这一点,让我们假设我的数据库中有用户和userstats,还有与这两个表关联的城市、州、县和地区等信息。在这个场景中,我可以通过隔夜或增量过程轻松地将我的userstats汇总到城市、州、县和地区级别

另一种情况是,我没有像城市、州、县这样的固定组,但我希望某些超级用户能够灵活地创建自己的组,并以以下形式手动绑定用户:

User1|
User2| - group1
User3|
                 -> group3
User4|
User5| - group2
User6|
此外,我还可以继续拥有我的城市、州、县团体,如:

User1|
User4| - city1
User3|
                 -> county1
User4|
User5| - city2
是否有一种已知的数据库模式可用于有效地将相关数据汇总到这些不同的存储桶中?某种标记模式

请让我知道,如果我不清楚,我可以更详细地澄清

进一步澄清:

我想按国家追踪用户点击的报告,我可以进一步深入到州、市两个级别


现在让我们假设我有一个设施来创建我自己的分组(通过用户界面),现在我将能够创建具有来自不同州的城市的新区域。所以现在我的报告可以按国家显示用户点击,然后我可以深入到自定义区域(城市组)。所有的分析,如用户点击,各种平均值,现在都应该根据新的组重新计算。

这听起来类似于我的问题,也许那里的答案会有帮助。

这听起来类似于我的问题,也许那里的答案会有帮助。

看看或邻接列表(也在同一篇文章中). 它们各有优缺点……

请看一看或邻接列表(也在同一篇文章中)。他们各有优缺点……

你的逻辑有误。城市、县、州不分等级——一个城市可以存在于不同的县,等等。

您的逻辑有误。城市、县、州不分等级——一个城市可以存在于不同的县,等等。

补充说明会更好,是的。准确地说,更多的细节是好的;要真正知道你在说什么有点困难。添加了更多信息。这有帮助吗?补充说明会很好,是的。准确地说,更多的细节是好的;要真正了解你在说什么有点困难。添加了更多信息。这有帮助吗?你实施了任何提议的模型吗?我同意亚当·罗宾逊的建议(公认的答案),到目前为止,它似乎工作得很好,尽管我知道它可能与您正在寻找的有所不同。您是否实施了任何建议的模型?我同意亚当·罗宾逊的建议(公认的答案),到目前为止,它似乎工作得很好,尽管我知道它可能与您所寻找的有所不同。如果没有很好的文档记录,嵌套集可能会变得很复杂,难以维护,但我同意您的看法。这是一个可能的解决办法+1现在我们有了通用的表表达式,这还相关吗?或者更确切地说,CTE减轻了使用邻接列表的缺点,因此维护嵌套集会使它们变得不那么有用。如果没有很好的文档记录,维护嵌套集可能会变得复杂,但我同意你的看法。这是一个可能的解决办法+1现在我们有了通用的表表达式,这还相关吗?或者更确切地说,CTE减轻了使用邻接列表的缺点,因此维护嵌套集使其不那么有用。