【发布时间】:2017-08-21 15:01:42
【问题描述】:
我是 OLAP 数据库设计的新手,我有一个带有以下表格的 mysql 数据库:-
countries(id, name);
occupations(id, name);
areas(id, name);
purposes(id, name);
tickets(id, issue_date, country_id, occupation_id, area_id, purpose_id, first_name, last_name, gender, birth_date, cost, quantity, .....);
这是我的交易数据库的简化版本,每次销售都会定期更新。如果我的票表每天填充大约 1000 行。如何设计我的 olap/数据库,以便我可以在图表上查看每日、每周、每月和每年的数据?
我可以使用上表在图表上描绘每天的数据,但是对于每周、每月等,由于数据集很大,应用程序无法响应!
更新! 在我看来,数据库模式本身就像一个星型模式,一个事实表作为门票,其他维度表作为国家、职业、地区等。我真的需要另一个模式吗?可能我什至根本不需要它。只有我担心的是,当票务表被要求获取一年的所有数据时,它将获取大约 1000*365 或更多的记录!正常吗?
【问题讨论】:
-
每天 1000 条记录并不是很多。但是您查询的门票表中的销售日期在哪里?你看到的问题是什么,你得到了太多的行,或者当你得到一个行一年后,需要很长时间才能得到?我同意这几乎就像一个星型模式,所以缺少的部分是一个每天一行的日期表。在该表中,您将有许多代表月份、年份等的列。您可以使用它来过滤年份或月份。
标签: mysql database laravel data-warehouse olap