database - 数据仓库中的维表命名
问题描述
我对数据仓库中维度表的命名约定有疑问。我想知道在名称中保留维度类型是个好主意。例如对于维度类型 1,我们将有如下内容:
- dim_scd1_student (它是渐变维度类型 1)
- dim_scd2_teacher (它是渐变维度类型 2)
解决方案
没有。
Ralph Kimball 博士和 Christopher Adamson 都没有在他们的书中使用这个约定。两位作者都建议在 ETL 过程中记录和管理此细节。
最终用户(例如经理和业务分析师)将与表名和列名进行交互。他们中的佼佼者将知道如何构建简单的 SQL 查询来获得他们寻求的业务答案。但缓慢变化的维度是实现细节,与它们无关。列名“dim_scd2_...”只会造成混乱、问题和噪音。请记住,这个系统是为商务人士设计的,而不是软件工程师。
另外,我会省略“dim”前缀。业务测量或事件表应以“fact”或“facts”作为后缀(Kimball 和 Adamson 都使用)。默认情况下,所有其他表格都是维度。
另外:按照您的建议进行操作类似于将存储类型嵌入到编程语言变量名中。例如,在 C 程序中,“int”类型可以按如下方式使用:int_customer_id
. 但是如果将来“int”不够大而我们需要使用“long”怎么办?哎呀。
推荐阅读
- r - 无法安装最新版本的 gganimate 包,好像依赖项“transformr”不可用
- json - 在 React 中映射使用 Axios 解析的嵌套对象
- asp.net-mvc - 在模型和数据库中表示多选属性的最佳方法是什么
- arrays - Runscript 错误 '9' 下标超出范围
- swift - 如何从swift中的时间戳获取日期格式
- optimization - MiniZinc:如何最大化一周中每一天的生产力变量
- python - Flask's url_for function does not get interpolated within html code
- python - 使用 Python 获取 WiFi 配置文件列表
- ruby-on-rails - rubocop 失败级别和失败的构建
- java - 如何在java中的HttpGet(URL)中使用具有特殊字符的Url