【问题标题】:Creating Actor Dimension for Sakila Data Warehouse为 Sakila 数据仓库创建 Actor 维度
【发布时间】:2016-01-11 14:00:24
【问题描述】:

我正在使用 Sakila 示例数据库创建数据仓库,以了解数据仓库的工作原理。

这是 Sakila db 的结构:https://dev.mysql.com/doc/sakila/en/sakila-structure.html。是关于视频租借的,应该是不言自明的。

我有一个带有一个度量的事实表,即payment 表中每个租金的付款金额。我现在创建了 3 个维度,时间、位置和电影维度。

现在我想创建一个 Actor 维度,以回答“哪些演员在我们的租赁中最受欢迎?”这个问题。然而想了一会儿,我就卡住了。这是我的问题。

创建电影维度很容易,每次付款大约是一部电影。所以在我的事实表中,对于每个payment_id,我都有一个对应的film_id,这将是我的事实表和电影维度之间的外键。但是电影和演员之间存在 N-N 关系(通过表 film_actor),所以我不知道将哪个外键放入我的事实表以链接到相应的演员,因为每个 payment_id 都需要链接到 0..n actor_ids.

我希望你能理解我的问题。任何帮助将不胜感激。

【问题讨论】:

    标签: database data-warehouse


    【解决方案1】:

    您需要一个 Bridge 表。

    这是一个 Kimball 参考,但它使用了一个困难的例子:

    http://www.kimballgroup.com/2012/02/design-tip-142-building-bridges/

    这里有一个更好的解释,尽管示例并不完全符合您的需要:

    http://www.askjohnobiee.com/2013/08/how-to-bridge-tables-and-many-to-many.html

    我所知道的关于桥接表的最佳讨论是 Christopher Adamson 的书“Star Schema - The Complete Reference”的第 9 章。如果您正在建造立体仓库,非常值得购买。您会在我们的书架上找到它的链接:

    http://ajilius.com/bookshelf/

    【讨论】:

    • 桥接表中的权重栏不是必须的吧?就我的电影和演员而言,我实际上不需要权重列。
    • 正确,不是强制性的,只与示例相关。
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多