为Sakila数据仓库创建Actor维度

时间:2016-01-11 14:00:24

标签: database data-warehouse

我使用Sakila示例数据库创建数据仓库,以了解数据仓库的工作方式。

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

我有一个带有一个度量的事实表,这是每个出租的payment表中的付款金额。我现在创建了三个维度,时间,位置和电影尺寸。

现在我想创建一个Actor维度,回答问题"哪些演员在我们的租赁中最受欢迎?"但是在思考了一下之后我就陷入了困境。这是我的问题。

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

相关联

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

1 个答案:

答案 0 :(得分: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的书第9章," Star Schema - The Complete Reference"。如果您正在建立一个维度仓库,那么值得购买。您可以从我们的书架中找到它:

http://ajilius.com/bookshelf/