假设我有两个表table_A和table_B,使用连接表A_join_B具有多对多关系。在A_join_B中当然有两列,分别是table_A和table_B的外键。
从table_A的角度来看,A_join_B中的第一列是其自身的键,而第二列是另一个表的键。从table_B的角度来看,这个含义是相反的。
我的问题是:这些“自我”和“其他”密钥是否有正确的名称?
我最近一直在使用名称 home key 和 away key ,因此从table_A的角度来看,A_join_B中的第一列是主键,第二列是是客场钥匙。我不认为这是传统的,我似乎无法在谷歌上找到任何东西。
或者,就像连接表本身的名称(联结表,关联表,外部参照表等等)一样,没有公认的标准术语吗?
答案 0 :(得分:0)
有许多学科以不同的方式查看数据库。数据,实体关系模型,网络数据模型,对象角色建模和维度建模的关系模型只是众所周知的一些观点。每个都有自己的术语。进一步令人困惑的问题是遍布整个领域的大量非正式术语,更不用说误解了。
在关系模型中,EF Codd引入了外键这个术语:“如果它不是R的主键但是它的元素是值,我们将把关系R的域(或域组合)称为外键一些关系S的主键(不排除S和R相同的可能性)。“
因此,在您的示例中,A_join_B由两个外键组成,它们共同构成该表的主键。关系模型不从一个表或另一个表中获取透视图。它也不区分连接表 - 每个表都是值集之间的关系。
现场不同数据建模方法的混乱让人感到困惑。我建议你一次拿一个模型并彻底研究,回到学科的学术根源。 Codd的A relational model of data for large shared data banks
和Chen的The entity-relationship model - toward a unified view of data
是数据建模历史上的两篇重要论文。它们也不难读 - 比书本更短,比博客更严谨,比产品文档更具教育性。