database design suggestion needed

Posted by JMSA on Stack Overflow See other posts from Stack Overflow or by JMSA
Published on 2009-11-16T08:18:41Z Indexed on 2010/05/18 2:40 UTC
Read the original article Hit count: 332

I need to design a table for daily sales of pharmaceutical products.

There are hundreds of types of products available {Name, code}.

Thousands of sales-persons are employed to sell those products{name, code}.

They collect products from different depots{name, code}.

They work in different Areas -> Zones -> Markets -> Outlets, etc. {All have names and codes}

Each product has various types of prices {Production Price, Trade Price, Business Price, Discount Price, etc.}. And, sales-persons are free to choose from those combination to estimate the sales price.

The problem is, daily sales requires huge amount of data-entry. Within couple of years there may be gigabytes of data (if not terabytes). If I need to show daily, weekly, monthly, quarterly and yearly sales reports there will be various types of sql queries I shall need.

This is my initial design:

Product {ID, Code, Name, IsActive}
ProductXYZPriceHistory {ID, ProductID, Date, EffectDate, Price, IsCurrent}
SalesPerson {ID, Code, Name, JoinDate, and so on..., IsActive}
SalesPersonSalesAraeaHistory {ID, SalesPersonID, SalesAreaID, IsCurrent}
Depot {ID, Code, Name, IsActive}
Outlet {ID, Code, Name, AreaID, IsActive}
AreaHierarchy {ID, Code, Name, PrentID, AreaLevel, IsActive}
DailySales {ID, ProductID, SalesPersonID, OutletID, Date, PriceID, SalesPrice, Discount, etc...}

Now, apart from indexing, how can I normalize my DailySales table to have a fine grained design that I shall not need to change for years to come?

Please show me a sample design of only the DailySales data-entry table (from which all types of reports would be queried) on the basis of above information.

I don't need a detailed design advice. I just need an advice regarding only the DailySales table. Is there any way to break this particular table to achieve granularity?

© Stack Overflow or respective owner

Related posts about database-design

Related posts about data-warehouse