小编Jim*_*Jim的帖子

我应该把这张大桌子分成三个小桌子吗?

我正在设计一个 PostgreSQL 数据库,该数据库将包含有关我的用户上传的照片的信息。所有用户都将拥有至少一张主照片和可选的一张或多张公开和/或私人照片。我的第一个架构如下:

user
----
id (PK)

photo
-----
id (PK)
user_id   (FK to user)
photo_id  (unique identifier such as "aK1q9")
type      ("main" or "other")
access    ("public" or "private")
Run Code Online (Sandbox Code Playgroud)

最常运行的查询是:

SELECT p.photo_id FROM photo p INNER JOIN user u ON p.user_id = u.id WHERE p.type = 'main' AND u.id = (some user id);
Run Code Online (Sandbox Code Playgroud)

下一个最受欢迎的查询将是:

SELECT p.photo_id FROM photo p INNER JOIN user u ON p.user_id = u.id WHERE p.type = 'other' AND p.access = 'public' AND u.id = (some user …
Run Code Online (Sandbox Code Playgroud)

postgresql performance database-design optimization query-performance

5
推荐指数
1
解决办法
2651
查看次数

无法强制删除 Postgres 数据库

我正在尝试使用 psql 从 Bash 脚本中强行删除 PostgreSQL 9.4.4 数据库:

#!/bin/bash
db="mydb"
psql -d $db -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$db';"
Run Code Online (Sandbox Code Playgroud)

我正在使用此问题中显示的解决方案,但它不起作用。我看到的是这样的:

FATAL: terminating connectoin due to administrator command
server closed the connection unexpectedly
         This probably means the server terminated abnormally
         before or while processing the request.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我拥有数据库并且我的用户角色具有“超级用户”属性,如我\du在 Postgres 控制台中所做的那样。

postgresql

3
推荐指数
1
解决办法
4711
查看次数