You show two tables that break out Sales Rep and Sales Group. Normally you have a single table that is the employee and one of the columns (attributes) is the department where they work (sales group in this case). Let's say you start with a record that looks like this:
SalesRepKey SalesRepCode SalesRepName SalesGroupCode
1 XYZ Bob 123
SalesGroupName StartDate EndDate
East 1/1/2008
So at this point, you have a Sales Rep named Bob and he's working in the East sales group (number 123). He started working here on 1/1/2008 and since EndDate is NULL, it's the current record. You can still have an IsCurrent field if you want. All sales coming in for this person will be tied to SalesRepKey 1.
Now assume that Bob moves to another sales group on 7/1/2008. Now the data looks like this:
SalesRepKey SalesRepCode SalesRepName SalesGroupCode
1 XYZ Bob 123
2 XYZ Bob 789
SalesGroupName StartDate EndDate
East 1/1/2008 6/30/2008
South 7/1/2008
Now, any new records will be tied to SalesRepKey 2. However, you need the dates in case you ever need to do a full reprocess of the cube. Then, when you look at a fact record, you have to match up the Sales Rep and the date to make sure you join to the correct dimension record.
At this point, users can browse by the Sales Rep (using the SalesRepCode) and they'll see Bob's records as one conitnuous line. If they browse by SalesGroupCode they'll see Bob's data in East (from 1/1/2008 to 6/30/2008) and South (from 7/1/2008 to the present). No need for any special configuring of the KeyColumns.