似乎有几个很好的选择来表示数据库中的分层数据,最流行的显然是树遍历算法。
在我的情况下可能可行的另一个选择是递归地进行。这可能涉及保存父 ID 并从那里开始 - 尽管这也需要某种方向。
现在我有一个问题,我有一组可以通过连接图来表征的项目,但是没有根,也不一定是起点。例如,可能会发生项目围绕自身循环,因此排序只是每个元素的元素而不是完整的。排序是“父”还是“子”取决于您从哪个方向开始,可以这么说。
此外,每个连接都应该由几个属性来表征,因此需要以某种方式识别连接。
另一件事是我仅限于 Access,这意味着我几乎仅限于您的标准 SQL 命令,而没有 SQL 中的递归或函数。
例如,SQL 中的许多动态转换为左/右遍历树的算法不适用于 Access SQL。
我对解决这个问题有很大的兴趣,而不是过多地依赖 VBA。
就性能而言,我预计少于 5000 个项目,尽管有关元素属性及其连接的查询可能有数十个元素。最初,该数据库将被少于 10 个用户同时使用,尽管如果它们运行良好,这些东西往往会在这里迅速扩展。
那么,你将如何实现这个结构呢?