gpt4 book ai didi

database - 如何在 PostgreSQL 中以星型模式结构排列我的数据

转载 作者:搜寻专家 更新时间:2023-10-30 22:33:21 24 4
gpt4 key购买 nike

我不确定使用 Postgres 在星型模式结构中排列数据的最佳方式是什么。

这是我的表格:

1) pages - 保存所有页面访问的数据(访问者在访问网站期间点击的每个页面) 2) sessions - 保存 session 数据(例如,每次访问者访问网站的时间) 3) countries - 县列表 4) session_users - 用户和属性列表 5) 每日汇总基于以上表格的表格

谢谢

页面用户身份session_idvisitor_idsession_country_id页网站类型访客类型资历页码结束日期

session 用户身份session_idvisitor_idvisit_country_id操作系统编号days_since_first_session session 开始日期 session 结束日期is_returning

session_user用户身份注册日期account_user_id购买日期

国家国家代码国家名称

session_user用户身份注册日期account_user_id购买日期

每日汇总表日期访客人数用户数 session 数平均页数先进的定价

最佳答案

最佳方法取决于许多我们不知道但您希望知道(或应该知道!)的事情,包括数据量、更新频率、哪些系统或人员与数据库交互、您如何并且您的用户将使用您的解决方案,最重要的是您试图通过数据仓库实现的目标。

这里有几个地方可以开始研究:

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/star-schema-olap-cube/

https://en.wikipedia.org/wiki/Star_schema

简而言之,星型模式有一个或多个记录很多的事实表,以及记录较少的多个维表。事实表包含您正在衡量或计算的事物,而维度包含您要用于汇总数据的特征。每个维度表中的主键与事实表中的一个键相关——事实表中每个维度键的组合都是唯一的。

那么,首先,您要衡量的事实是什么?收入?命中?或者是什么?那么,你的维度是什么,每个维度有什么特点?获得答案的一个好方法是思考您正在解决的业务问题。一旦你有了这些答案,表格设计就会随之而来。值得阅读几本关于数据仓库设计的书籍以获得一些提示,例如建模日期和时间维度。

就 Postgresql 而言,您的表创建查询可能如下所示:

create table dimension1 (
dimension1_key serial primary key,
attribute1 text not null default 'unknown',
attribute2 text not null default 'unknown');

create table dimension2 (
dimension2_key serial primary key,
attribute1 text not null default 'unknown',
attribute2 text not null default 'unknown');



create table fact1 (
dimension1_key integer references dimension1,
dimension2_key integer references dimension2,
fact integer,
constraint pk primary key (dimension1_key,dimension2_key)
)

您通常会在要汇总的列上放置索引:

create index dimension2_attribute1 on dimension2(attribute1);    

我认为不可能甚至不希望为您提供比这更完整的答案。我认为您自己了解仓库设计很重要,为此您需要阅读一些资料。

关于database - 如何在 PostgreSQL 中以星型模式结构排列我的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40972120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com