雪花数据模型中的主键和外键困境

问题描述 投票:0回答:1

我正在 Snowflake 中构建 DQ 测试应用程序。下面是数据模型的简化版本(为了清楚起见,我重命名了对象)。我有多个用于不同测试的配置表(例如,每个

unique_tests
都有
test_id
列(充当 PK),它是关键列的 MD5 哈希值,有助于避免重复测试)。 还有一个结果表
test_results
,其中每个测试类型运行的结果都保留了作业的历史记录。 现在我添加了一个表
test_impact_category
,用户可以根据影响对问题结果进行分类(例如高影响、低影响等)。

我没有看到在

test_impact_category
表中创建单独主键的用例,因为这是雪花,其中不强制执行主键且不将其用于索引。所以这里的争议是:

  • 让外键引用另一个外键(很多)实际上是有意义的(

    test_results.test_id
    (很多)=
    test_impact_category.test_id
    (一个))

  • 不向测试配置表添加影响列是有原因的

因此,如果就数据建模最佳实践和常识而言,我很好奇其他经验丰富的建模者/工程师将如何在 Snowflake 中对此进行建模?

sql snowflake-cloud-data-platform data-modeling
1个回答
0
投票

显然,不存在外键只能引用 PK/UK 的困境。 所以我猜这种关系不能记录在 DDL 中。 保留这个帖子,也许会有一些有趣的答案,其他一些人也能受益。

© www.soinside.com 2019 - 2024. All rights reserved.