• If there is a useable business key on the fact table, use it for the primary key, usually though without clustering it.  That's not always possible, but often the fact table grain is an individual something that has an identifiable business key, even if it's just an identity.  At that point, you're good.  Whether that's possible or not, consider creating a clustered index on only one of the fields, usually the date field.  Then non-clustered indexes on the other foreign key fields.  There are lots of options, just be sure you've analyzed options.