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 个表的关系?