我有很多表对,我希望通过PK-FK关系有效地确定哪些表具有彼此相关的表。
我正在寻找的是以下内容之一:
例如:
假设我有以下几对表:
{Table1, Table2}
{Table3, Table4}
{Table5, Table6}
还有更多......
在上述对中,如果表Table3和Table4通过PK-FK关系彼此相关,我想返回对{Table3, Table4}
。要返回正确的对,我需要一种有效的方法来确定表是否相关(假设关系没有记录)。
注意:我正在寻找基于数据的表之间PK-FK关系的发现,而不仅仅是基于元数据的发现(因为在某些情况下元数据可能不可用)。
非常感谢提前。
答案 0 :(得分:0)
免责声明:我是一个这样的算法Linkifier的作者。 Linkifier根据元数据(如列名称及其数据类型的相似性)和列统计信息(如平均列宽度,以字节为单位)估计FK约束。
在说清楚之前,重要的是要注意FK约束识别通常是一个棘手的问题 - 有理由为什么DB不推断FK约束但用户必须提供它们。因此,不要指望估计值是100%准确的。
如果要在数据库中设置约束,则建议使用一般工作流程:
如果您只想生成ER图,请从Linkifier导出估算值并使用yEd(ER图的合适布局算法为BPMN)或Oracle Data Modeler可视化它们。