C# - 以编程方式识别 2 个表之间的关系类型

Posted

技术标签:

【中文标题】C# - 以编程方式识别 2 个表之间的关系类型【英文标题】:C# - programmatically identify relationship type between 2 tables 【发布时间】:2011-08-24 16:21:14 【问题描述】:

目前使用 GetOleDbSchemaTable 告诉我很多关于我的数据库表的信息。虽然 OleDbSchemaGuid.Foreign_Keys 参数告诉我有关表上的外键数据的信息,但我无法从该数据中推断出某些内容是否为 1:N、N:1、N:M 等。有什么方法可以得出这种类型的信息吗?

【问题讨论】:

你能确定外键引用的列是否在被引用的表上形成唯一索引?可以的话可以扣分。 【参考方案1】:

正如杰克所说,您可以知道架构是否返回列的唯一属性。

如果表 A 的外键在表 B 中是唯一的,那么它是一对一的关系。

如果它在表 B 中具有唯一约束且主键在表 B 中,则它的 1 到多个。

如果在 A 和 B 之间有一个表 C,其中 A\B 主键都是 C 中的外键,那么它是多对多关系。

【讨论】:

以上是关于C# - 以编程方式识别 2 个表之间的关系类型的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建与事实维度的关系

如何使用 3 个表在 SQL 查询中获得完整结果,其中 1 个表保持 2 个表的关系?

java 编程思想笔记——多态

如何在 C# 中以编程方式将 Windows 服务的启动类型更改为禁用

以编程方式识别 PHP 和 ASP 包含依赖项 [关闭]

聊一聊C#与.NET之间的关系