In Data Warehouse(DW) we have dimensions and facts table. Dimensions keys migrate as foreign keys into facts table, and thus in facts table forms composite primary key in that tables. Of course, sometimes is not needed all foreign keys to create unique primary key, because in most situations uniqueness is defined by few foreign keys.
But, I was wondering why fact tables doesn't have surrogate key as primary key, like dimension tables? First, when indexing primary key in DW (nonclustered index - some kind of best practices) is it better to have one column in index, or five? I know that DW systems doesn't care much about disk amount that indexes reserves, but every time for me is logical to have surrogate key instead composite foreign key.
Can someone explain why this is not standard practice?