我这里有一些设计问题。我有自己的用 Python 编写的 ListServ 实现,它与 Postfix+Dovecot 系统一起工作以处理邮件,以及一个 PostgreSQL 数据库后端,用于确定以下大部分功能:
lists下图中的表格)members图中的表格)listserv_membership下图中的表格,通过列表服务 ID 和成员 ID 将个人“成员”链接到他们所属的个人“列表”)
listserv_stats表)目前,数据库的结构是这样的(注意,我已经把我不打算关注的表中所有不相关的字段都去掉了,并保留了主键;相关表用三个标记旁边的白色星号,此图是使用 DataGrip 创建的):
请不要因为图中的对角线箭头而大喊大叫——这个是作为一个快速而肮脏的图表完成的,而我在 Visio 中手工完成了一个很好的ERD,不幸的是我现在使用的计算机上没有
我要问的具体表是listserv_stats这里的表,而不是数据库设计的其余部分。
现在,最初,我只担心每天跟踪统计数据,以及基于列表服务活动天数的“所有时间”非常粗略的每日平均值。我现在更关心其他统计数据,例如月平均值、本月至今平均值、年初至今平均值和年度平均值,因此我正在考虑重新设计以更好地适应此类搜索。
当前的表CREATE语句是这样的:
CREATE TABLE listserv_stats
(
lsid INTEGER NOT NULL,
datestamp DATE DEFAULT now() NOT NULL,
msg_count INTEGER NOT NULL,
CONSTRAINT listserv_stats_lsid_date_pk PRIMARY KEY (lsid, datestamp),
CONSTRAINT listserv_stats_lists_lsid_fk FOREIGN KEY (lsid) REFERENCES …Run Code Online (Sandbox Code Playgroud)