我正在开始一个新项目,其中一个要求是使用Teradata。我精通许多不同的数据库系统,但Teradata对我来说还是个新手。
在客户端,他们根据“顾问”的建议从他们的数据库中删除了所有外键。
我的每个部分都在畏缩。
我正在使用一个新的数据库实例,因此我不会受到他们在其他数据库上已经完成的操作的限制。我没有被明确告知不要使用外键,而且我与客户的关系是这样的,他们至少会听我说。但是,我的决定和案例应该是明智的。
是否存在任何内在的技术原因,我不应该在Teradata中使用FK来维护基于Teradata设计,性能,副作用等的参照完整性......
值得注意的是,我正在使用.Net Data Provider v16访问Teradata,该版本仅支持EF5。
答案 0 :(得分:1)
假设新项目正在实施数据仓库,原因很简单(对于任何DWH都是如此,不仅仅是Teradata):DWH与OLTP系统不同。
当然你还有小学和初级逻辑数据模型中的外键,但可能未在物理模型中实现(尽管Teradata支持它们)。有几个原因:
关于PK / FK的知识对优化器很重要,因此有一个所谓的 Soft Foreign Key (REFERENCES WITH NO CHECK OPTION
),这是一种虚拟:应用于优化,但从未实际由DBMS检查(它告诉优化器信任我,它是正确的)。