我正在从ERD建模星型模式。数据库是一家租赁公司。我的事实表现在包含一个租赁预订。客户可以预订汽车,收集汽车和返回汽车。应记录发生这种情况的日期。
因此,我的Star Schema现在有一个时间维度,包含日/月/年,以及与事实表的三个关系。我想知道这是否是正确的方法,或者是否有其他选择需要考虑,因为我从未见过星级方案,其中维度有多个关系。
就是这样:
Booking(Fact)
bookingId
bookingDate(FK)
collectionDate(FK)
returnDate(FK)
Time(Dim)
timeId
day
month
year
答案 0 :(得分:1)
是的,您可以多次将Fact连接到同一维度。我已经看到这种情况特别适用于时间维度。 我不确定您使用什么密钥加入事实到时间昏暗,但在选择数据时,您最终可能会得到这样的查询:
select bFact.bookingID,t1.day "Booking Date",t2.day "Collection Date",t3.day "Return Date"
from Booking bFact
join Time t1 on t1.date = bFact.bookingDate
join Time t2 on t2.date = bFact.collectionDate
join Time t3 on t3.date = bFact.returnDate
答案 1 :(得分:-1)