[AccessD] Warehouse design (was Mucking Around)

jwcolby jwcolby at colbyconsulting.com
Tue Oct 2 09:02:50 CDT 2007


Congratulations on the wedding! 


John W. Colby
Colby Consulting
www.ColbyConsulting.com 
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Robert L. Stewart
Sent: Tuesday, October 02, 2007 9:37 AM
To: accessd at databaseadvisors.com
Subject: [AccessD] Warehouse design (was Mucking Around)

No.  The transactional tables are always part of a totally different system.

You use a process of some kind to load the data from the transactional
system, say orders, into the data mart.

tblCustomer                 tblCustomerType
CustID                      CustomerTypeID
CustName                    CustomerTypeDesc
CustTypeID
PmtTermsID

tblCustomerAddress          tblPmtTerms
CustAddressID               PmtTermsID
CustID                      PmtTermsDesc
AddressTypeID
AddressLine1                tblAddressType
AddressLine2                AddressTypeID
City                        AddressTypeDesc
State
PostalCode


tblOrder                    tblOrderDetail
OrderID                     OrderDetailID
CustID                      OrderID
ShippingMethodID            ProductID
OrderDate                   QtyOrdered
ShipDate                    QtyShipped

tblProducts                 tblShippingMethod
ProductID                   ShippingMethodID
ProductName                 ShippingMethodDesc
QtyOnHand
QtyOnOrder
ReorderPoint
LastCost
SalesPrice

Assuming the above as our transactional system and all the data entry would
be done in the above tables.

Our star schema would look something like this:

dtblCustomer                 dtblDates
CustomerID                   DateID
CustName                     YearText
CustTypeDesc                 YearNbr
PmtTermsDesc                 MonthText
ShippingAddressLine1         MonthNbr
ShippingAddressLine2         MonthAbrev
ShippingCity                 MonthYearText
ShippingState                YearMonthText
ShippingPostalCode           DayText
BillingAddressLine1          DayNbr
BillingAddressLine2          DayOfYearNbr
BillingCity
BillingState
BillingPostalCode

dtblProducts                dtblShippingMethod
ProductID                   ShippingMethodID
ProductName                 ShippingMethodDesc

ftblOrders
CustID
DateID
ProductID
ShippingMethodID
TotalQtySold
SalesPrice

In ftblOrders the PK would be CustID, DateID, ProductID, ShippingMethodID.
Notice in dtblCustomer, the address information has been denormalized so
that we do not have to join to the address table.  If we did not do that, it
would be called a snowflake.

Sorry that I did not get back to you quicker. I would out of touch with
email due to my wedding :0)

Robert




More information about the AccessD mailing list