小编Nec*_*oft的帖子

postgres 程序的测试驱动设计

我希望引入一种测试驱动的设计风格来为 postgresql 数据库实现编写我的存储过程。

我已经看到pgTap是一个流行的 postgres 单元测试工具,并且正确地允许测试用 SQL 编写,而不是在外部构建和运行。

为了走得更远,我还希望能够使用测试替身(存根、模拟、假、虚拟),甚至可能使用一些 IDE 支持运行和重构(类似于tsql

当前是否有专门用于在 postgres 中支持 TDD 的工具和资源,或者人们是否通过构建假表和数据并将所有内容包装在完成时回滚的事务中来推出自己的工具和资源?

目前在 postgres 中接近 TDD 的最佳实践是什么?

postgresql unit-test design-pattern

7
推荐指数
1
解决办法
990
查看次数

有效地从 am:n 表中返回两个聚合数组

我有一个表,用于表上的多对多关系users来表示用户之间的跟随关系:

CREATE TABLE users (
    id text PRIMARY KEY,
    username text NOT NULL
);

CREATE TABLE followers (
    userid text,
    followid text,
    PRIMARY KEY (userid, followid),
    CONSTRAINT followers_userid_fk   FOREIGN KEY (userid)   REFERENCES users (id),
    CONSTRAINT followers_followid_fk FOREIGN KEY (followid) REFERENCES users (id)
);

CREATE INDEX followers_followid_idx ON followers (followid);
Run Code Online (Sandbox Code Playgroud)

当我想使用与用户相关的数据创建 JSON 响应时,我有两种情况:

  • 通过 id 请求单个用户,
  • 通过 id 列表请求用户对象数组

用户数据对象应包含两个用户 ID 数组,一个是他们关注的用户,另一个是关注他们的用户。为了创建这两个字段,我使用了以下SELECT语句。

DECLARE follows RECORD;
SELECT  array (select followid FROM followers where userid = Puserid) AS following, …
Run Code Online (Sandbox Code Playgroud)

postgresql performance view many-to-many postgresql-10

2
推荐指数
1
解决办法
1120
查看次数