- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
似乎有几个很好的选择来表示数据库中的分层数据,最流行的显然是树遍历算法。
在我的情况下可能可行的另一个选择是递归地进行。这可能涉及保存父 ID 并从那里开始 - 尽管这也需要某种方向。
现在我有一个问题,我有一组可以通过连接图来表征的项目,但是没有根,也不一定是起点。例如,可能会发生项目围绕自身循环,因此排序只是每个元素的元素而不是完整的。排序是“父”还是“子”取决于您从哪个方向开始,可以这么说。
此外,每个连接都应该由几个属性来表征,因此需要以某种方式识别连接。
这是一个示例,虽然请注意这只是一个小示例,但您已经可以看到一个简单的遍历算法可能从 254 开始,但是从 203 到 162 然后 254 实际上是 162 的子节点 - 这可能是一个问题(我我远不是一个 cs 专业,所以我真的不知道)
另一件事是我仅限于 Access,这意味着我几乎仅限于您的标准 SQL 命令,而没有 SQL 中的递归或函数。
例如,SQL 中的许多动态转换为左/右遍历树的算法不适用于 Access SQL。
我对解决这个问题有很大的兴趣,而不是过多地依赖 VBA。
就性能而言,我预计少于 5000 个项目,尽管有关元素属性及其连接的查询可能有数十个元素。最初,该数据库将被少于 10 个用户同时使用,尽管如果它们运行良好,这些东西往往会在这里迅速扩展。
那么,你将如何实现这个结构呢?
最佳答案
我使用了 Joe Celko 的嵌套集合方法。它在正确的情况下工作得非常好。这不是其中一种情况。
一种更灵活的方法,我建议您使用的方法是 Bill Karwin 所说的 。 closure table .
基本思想是您有一条记录 每可能的路径。 Bill 建议使用两个字段,ancest_id 和 descendant_id。从您的图表中不清楚祖先/后代范式是否真的适用于您的情况。
我还发现为节点之间的跳数添加至少一个字段很有用。我会通过创建一个包含三个字段的表来调整 Bill 的方法:
NodeA NodeB Hops
------ ------ ----
tog171 tog171 0
tog171 abb521 1
abb521 tog171 1
tog171 tog226 2
tog226 tog171 2
tog171 tog218 3
tog218 tog171 3
关于sql - 在数据库中表示无根树/图表/层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518549/
我需要将所有可用数据(包括记录的用户信息等)从 Android 中的应用程序迁移到不同的设备。基本上我需要的是将整个应用程序从一台设备导出到另一台设备(可能不止一台设备),包括所有应用程序的数据 最佳
我正在尝试查找可以让我以编程方式捕获来自 wifi 或移动网络的设备的所有网络数据包流量的资源或库。我相信不需要 root 就可以像 shark for root 这样混杂模式。会请求因为有 this
我尝试运行最新版本的 debian 和 alpine,但似乎以 root 用户身份运行。 我期待 echo $USER如果返回为空,则不应返回 root;然后我需要使用命令 whoami 进行验证如果
我已经在 ubuntu 主机上安装了 docker rootless。我有一个用于构建 timescaledb 的 Dockerfile,其中最重要的部分如下所示: # Install the too
我正在尝试在 Android 手机(无根)中运行一个脚本来完成以下任务。 进入camera 目录,将Camera 中的所有*.mp4 文件复制到backups,然后进入 backups 目录并将所有
在工作中,开发没有修订控制。我的意思是,只有当变更集准备好进行回归测试时,我们才被允许 checkin P4 仓库。我们无法检查校际变化!在开发过程中没有修订控制有很多问题,我不需要在这里讨论。相反,
我尝试在Linux系统上无根安装caffe。我发现了这个this指令。现在在编译caffe的某个时刻,我收到以下错误消息: $make all -j8 LD -o .build_release/lib
我有一个复杂的 Andriod 应用程序(Java 和 native 代码)最初是为 Android 2.x 系列设备构建的。我已经在 Android 4.3 版本的模拟器上工作了,但我不得不使用 a
我是一名优秀的程序员,十分优秀!