我们如何在名为 Patent 的事实表中放置 Inventor 表 (InventorID) 的主键的外键,以保持表的正确连接,如名为 Patent 的表 Patent 的主键与其外键之间的关系所指出的那样表发明人的专利。我们这样做是为了使用事实表专利的发明人表创建一个维度。
1 回答
Your problem is that you have a many-to-many relationship between patents and inventors. You cannot readily implement this with a simple snowflake schema.
Basically, you need to introduce a new table at the patent-inventor level, to handle the many-to-many relationship between these entities.
You can think of this in two ways. The first is that you have a star flake schema with a fact table at a new level, patent-inventor. The patent and inventor levels are then dimensions off of this table.
The second is as a multiple fact tables, with the patent-inventor table connecting them.
What is important is that other dimensions that may be common to both patent and inventor are shared -- dimensions such as time and geography.