gpt4 book ai didi

c# - 判断两个表是否相关的函数

转载 作者:行者123 更新时间:2023-11-30 18:38:02 25 4
gpt4 key购买 nike

假设我在内存中有 5 个表模式作为数据表,另一个数据表是其他 5 个表之间的引用约束的模式。

5 个模式表是相关的,表 A 包含与 B 中的外键相关的主键列。B 还包含与 C 中的外键列相关的主键列,C 到 D,但假设 A ,B,C,D与E没有直接或间接的关系。

什么样的函数会接受两个数据表并返回一个 bool 值,指示这些表是否相关或“链接”。

我正在努力实现的目标

假设我在拖放式界面中向用户展示 5 个表格中的所有列。我希望用户能够以图形方式构建查询,但我需要根据是否可以在同一选择语句中返回某些列来启用/禁用它们。

最佳答案

您说您有第六张表,其中包含其他表之间的约束。

假设您可以有效地使用此信息,并且只是试图映射直接关系,您可能会这样做:

  • 编译所有表的列表,这些表可能包含可能从其他表引用的主键
  • 遍历每个这样的表 X
    • 编译 X 可能相关的表的列表 L
    • 对于表 X 中的每个主键 K,遍历 L 中的每个表,搜索对 K 的任何引用。
    • 一旦遇到对任何 K 的引用,立即中断并跳到 L 中的下一个表
    • 以某种方式存储有关关系的信息(例如,每个表 X 的 L 表列表)

我知道这是非常高级和抽象的,但我希望它有意义..

这可能需要一些时间来运行,具体取决于表的数量和它们之间关系的复杂性,但我看不出有更好的选择。

您可以将有关“禁止”关系的信息存储在例如带有键和每个表的列表的字典中;像这样(对于单向关系,避免重复注册信息):

{TableA => {TableB, TableC}, 
TableB => {TableC, TableD},
TableC => {},
etc..}

关于c# - 判断两个表是否相关的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com