Skip to content

Commit 8cdd764

Browse files
committed
PostgreSQL:更新表,解决缺少建表 CREATE TABLE 语句
1 parent dadad60 commit 8cdd764

16 files changed

+2753
-2231
lines changed

PostgreSQL/postgres_sys.sql

Lines changed: 2492 additions & 2231 deletions
Large diffs are not rendered by default.

PostgreSQL/single/postgres_sys_Access.sql

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
CREATE TABLE sys."Access"
2+
(
3+
id integer PRIMARY KEY NOT NULL,
4+
debug integer DEFAULT 0 NOT NULL,
5+
name varchar(50) DEFAULT '实际表名,例如 apijson_user'::character varying NOT NULL,
6+
alias text,
7+
get text DEFAULT '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]'::text NOT NULL,
8+
head text DEFAULT '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]'::text NOT NULL,
9+
gets text DEFAULT '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]'::text NOT NULL,
10+
heads text DEFAULT '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]'::text NOT NULL,
11+
post text DEFAULT '["OWNER", "ADMIN"]'::text NOT NULL,
12+
put text DEFAULT '["OWNER", "ADMIN"]'::text NOT NULL,
13+
delete text DEFAULT '["OWNER", "ADMIN"]'::text NOT NULL,
14+
date text DEFAULT CURRENT_TIMESTAMP NOT NULL
15+
);
16+
COMMENT ON COLUMN sys."Access".id IS '唯一标识';
17+
COMMENT ON COLUMN sys."Access".debug IS '是否为调试表,只允许在开发环境使用,测试和线上环境禁用';
18+
COMMENT ON COLUMN sys."Access".alias IS '外部调用的表别名,例如 User';
19+
COMMENT ON COLUMN sys."Access".get IS '允许 get 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]
20+
用 JSON 类型不能设置默认值,反正权限对应的需求是明确的,也不需要自动转 JSONArray。
21+
TODO: 直接 LOGIN,CONTACT,CIRCLE,OWNER 更简单,反正是开发内部用,不需要复杂查询。';
22+
COMMENT ON COLUMN sys."Access".head IS '允许 head 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
23+
COMMENT ON COLUMN sys."Access".gets IS '允许 gets 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
24+
COMMENT ON COLUMN sys."Access".heads IS '允许 heads 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
25+
COMMENT ON COLUMN sys."Access".post IS '允许 post 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
26+
COMMENT ON COLUMN sys."Access".put IS '允许 put 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
27+
COMMENT ON COLUMN sys."Access".delete IS '允许 delete 的角色列表,例如 ["LOGIN", "CONTACT", "CIRCLE", "OWNER"]';
28+
COMMENT ON COLUMN sys."Access".date IS '创建时间';
29+
CREATE UNIQUE INDEX access_alias_uindex ON sys."Access" (alias);
130
INSERT INTO sys."Access" (id, debug, name, alias, get, head, gets, heads, post, put, delete, date) VALUES (1, 1, 'Access', '', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '[]', '[]', '[]', '2019-07-21 12:21:36');
231
INSERT INTO sys."Access" (id, debug, name, alias, get, head, gets, heads, post, put, delete, date) VALUES (2, 1, 'Table', null, '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '[]', '[]', '[]', '2018-11-28 16:38:14');
332
INSERT INTO sys."Access" (id, debug, name, alias, get, head, gets, heads, post, put, delete, date) VALUES (3, 1, 'Column', null, '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["UNKNOWN", "LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '["LOGIN", "CONTACT", "CIRCLE", "OWNER", "ADMIN"]', '[]', '[]', '[]', '2018-11-28 16:38:14');

PostgreSQL/single/postgres_sys_Comment.sql

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
CREATE TABLE sys."Comment"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
"toId" bigint DEFAULT 0 NOT NULL,
5+
"userId" bigint NOT NULL,
6+
"momentId" bigint NOT NULL,
7+
date timestamp(6),
8+
content varchar(1000) NOT NULL
9+
);
10+
COMMENT ON COLUMN sys."Comment".id IS '唯一标识';
11+
COMMENT ON COLUMN sys."Comment"."toId" IS '被回复的id';
12+
COMMENT ON COLUMN sys."Comment"."userId" IS '评论人id';
13+
COMMENT ON COLUMN sys."Comment"."momentId" IS '动态id';
14+
COMMENT ON COLUMN sys."Comment".date IS '创建日期';
15+
COMMENT ON COLUMN sys."Comment".content IS '内容';
116
INSERT INTO sys."Comment" (id, "toId", "userId", "momentId", date, content) VALUES (4, 0, 38710, 470, '2017-02-01 11:20:50.000000', 'This is a Content...-4');
217
INSERT INTO sys."Comment" (id, "toId", "userId", "momentId", date, content) VALUES (13, 0, 82005, 58, '2017-02-01 11:20:50.000000', 'This is a Content...-13');
318
INSERT INTO sys."Comment" (id, "toId", "userId", "momentId", date, content) VALUES (22, 221, 82001, 470, '2017-02-01 11:20:50.000000', '测试修改评论');

PostgreSQL/single/postgres_sys_Document.sql

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
1+
CREATE TABLE sys."Document"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
"userId" bigint NOT NULL,
5+
version smallint NOT NULL,
6+
name varchar(100) NOT NULL,
7+
url varchar(250) NOT NULL,
8+
request text NOT NULL,
9+
response text,
10+
header text,
11+
date timestamp
12+
);
13+
COMMENT ON COLUMN sys."Document".id IS '唯一标识';
14+
COMMENT ON COLUMN sys."Document"."userId" IS '用户id
15+
应该用adminId,只有当登录账户是管理员时才能操作文档。
16+
需要先建Admin表,新增登录等相关接口。';
17+
COMMENT ON COLUMN sys."Document".version IS '接口版本号
18+
<=0 - 不限制版本,任意版本都可用这个接口
19+
>0 - 在这个版本添加的接口';
20+
COMMENT ON COLUMN sys."Document".name IS '接口名称';
21+
COMMENT ON COLUMN sys."Document".url IS '请求地址';
22+
COMMENT ON COLUMN sys."Document".request IS '请求
23+
用json格式会导致强制排序,而请求中引用赋值只能引用上面的字段,必须有序。';
24+
COMMENT ON COLUMN sys."Document".response IS '标准返回结果JSON
25+
用json格式会导致强制排序,而请求中引用赋值只能引用上面的字段,必须有序。';
26+
COMMENT ON COLUMN sys."Document".header IS '请求头 Request Header:
27+
key: value //注释';
28+
COMMENT ON COLUMN sys."Document".date IS '创建时间';
129
INSERT INTO sys."Document" (id, "userId", version, name, url, request, response, header, date) VALUES (1, 0, 1, '登录', '/login', '{"type": 0, "phone": "13000082001", "version": 1, "password": "123456"}', null, null, '2017-11-26 07:35:19.000000');
230
INSERT INTO sys."Document" (id, "userId", version, name, url, request, response, header, date) VALUES (2, 0, 1, '注册(先获取验证码type:1)', '/register', '{
331
"Privacy": {

PostgreSQL/single/postgres_sys_Function.sql

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
CREATE TABLE sys."Function"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
name varchar(30) NOT NULL,
5+
arguments varchar(100),
6+
demo text NOT NULL,
7+
detail varchar(1000),
8+
date timestamp(6) NOT NULL,
9+
back varchar(45),
10+
requestlist varchar(45),
11+
"userId" bigint DEFAULT 0,
12+
type varchar(45) DEFAULT 'Object'::character varying
13+
);
14+
COMMENT ON COLUMN sys."Function".name IS '方法名';
15+
COMMENT ON COLUMN sys."Function".arguments IS '参数列表,每个参数的类型都是 String。
16+
用 , 分割的字符串 比 [JSONArray] 更好,例如 array,item ,更直观,还方便拼接函数。';
17+
COMMENT ON COLUMN sys."Function".demo IS '可用的示例。';
18+
COMMENT ON COLUMN sys."Function".detail IS '详细描述';
19+
COMMENT ON COLUMN sys."Function".date IS '创建时间';
20+
COMMENT ON COLUMN sys."Function".back IS '返回类型';
21+
COMMENT ON COLUMN sys."Function".requestlist IS 'Request 的 id 列表';
22+
COMMENT ON COLUMN sys."Function"."userId" IS '用户id';
23+
COMMENT ON COLUMN sys."Function".type IS '返回类型';
124
INSERT INTO sys."Function" (id, name, arguments, demo, detail, date, back, requestlist, "userId", type) VALUES (3, 'countArray', 'array', '{"array": [1, 2, 3]}', '获取数组长度。没写调用键值对,会自动补全 "result()": "countArray(array)"', '2018-10-13 08:23:23.000000', null, null, 0, 'Object');
225
INSERT INTO sys."Function" (id, name, arguments, demo, detail, date, back, requestlist, "userId", type) VALUES (4, 'countObject', 'object', '{"object": {"key0": 1, "key1": 2}}', '获取对象长度。', '2018-10-13 08:23:23.000000', null, null, 0, 'Object');
326
INSERT INTO sys."Function" (id, name, arguments, demo, detail, date, back, requestlist, "userId", type) VALUES (5, 'isContain', 'array,value', '{"array": [1, 2, 3], "value": 2}', '判断是否数组包含值。', '2018-10-13 08:23:23.000000', null, null, 0, 'Object');

PostgreSQL/single/postgres_sys_Login.sql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
CREATE TABLE sys."Login"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
"userId" bigint NOT NULL,
5+
type smallint NOT NULL,
6+
date timestamp(6) NOT NULL
7+
);
8+
COMMENT ON COLUMN sys."Login".id IS '唯一标识';
9+
COMMENT ON COLUMN sys."Login"."userId" IS '用户id';
10+
COMMENT ON COLUMN sys."Login".type IS '类型
11+
0-密码登录
12+
1-验证码登录';
13+
COMMENT ON COLUMN sys."Login".date IS '创建日期';
114
INSERT INTO sys."Login" (id, "userId", type, date) VALUES (1488365732208, 0, 0, '2017-03-01 10:55:32.000000');
215
INSERT INTO sys."Login" (id, "userId", type, date) VALUES (1488379391681, 1488378558927, 0, '2017-03-01 14:43:11.000000');
316
INSERT INTO sys."Login" (id, "userId", type, date) VALUES (1488379908786, 1488378449469, 0, '2017-03-01 14:51:48.000000');

PostgreSQL/single/postgres_sys_Moment.sql

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
CREATE TABLE sys."Moment"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
"userId" bigint NOT NULL,
5+
date timestamp(6),
6+
content varchar(300),
7+
"praiseUserIdList" jsonb NOT NULL,
8+
"pictureList" jsonb NOT NULL
9+
);
10+
COMMENT ON COLUMN sys."Moment".id IS '唯一标识';
11+
COMMENT ON COLUMN sys."Moment"."userId" IS '用户id';
12+
COMMENT ON COLUMN sys."Moment".date IS '创建日期';
13+
COMMENT ON COLUMN sys."Moment".content IS '内容';
14+
COMMENT ON COLUMN sys."Moment"."praiseUserIdList" IS '点赞的用户id列表';
15+
COMMENT ON COLUMN sys."Moment"."pictureList" IS '图片列表';
116
INSERT INTO sys."Moment" (id, "userId", date, content, "praiseUserIdList", "pictureList") VALUES (12, 70793, '2017-02-08 08:06:11.000000', 'APIJSON,let interfaces and documents go to hell !', '[70793, 93793, 82044, 82040, 82055, 90814, 38710, 82002, 82006, 1508072105320, 82001]', '["http://static.oschina.net/uploads/img/201604/22172508_eGDi.jpg", "http://static.oschina.net/uploads/img/201604/22172507_rrZ5.jpg", "https://camo.githubusercontent.com/788c0a7e11a4f5aadef3c886f028c79b4808613a/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343932353935372d313732303737333630382e6a7067", "http://static.oschina.net/uploads/img/201604/22172507_Pz9Y.png", "https://camo.githubusercontent.com/c98b1c86af136745cc4626c6ece830f76de9ee83/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343930383036362d313837323233393236352e6a7067", "https://camo.githubusercontent.com/f513fa631bd780dc0ec3cf2663777e356dc3664f/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343733323232332d3337333933303233322e6a7067", "https://camo.githubusercontent.com/c98b1c86af136745cc4626c6ece830f76de9ee83/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343930383036362d313837323233393236352e6a7067", "https://camo.githubusercontent.com/f513fa631bd780dc0ec3cf2663777e356dc3664f/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343733323232332d3337333933303233322e6a7067"]');
217
INSERT INTO sys."Moment" (id, "userId", date, content, "praiseUserIdList", "pictureList") VALUES (32, 82002, '2017-02-08 08:06:11.000000', null, '[38710, 82002, 82001]', '["https://camo.githubusercontent.com/f513fa631bd780dc0ec3cf2663777e356dc3664f/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343733323232332d3337333933303233322e6a7067", "https://camo.githubusercontent.com/5f5c4e0c4dc539c34e8eae8ac0cbc6dccdfee5d3/687474703a2f2f696d61676573323031352e636e626c6f67732e636f6d2f626c6f672f3636303036372f3230313630342f3636303036372d32303136303431343232343533333831362d323032373434343231382e6a7067", "http://static.oschina.net/uploads/img/201604/22172508_mpwj.jpg"]');
318
INSERT INTO sys."Moment" (id, "userId", date, content, "praiseUserIdList", "pictureList") VALUES (58, 90814, '2017-02-01 11:14:31.000000', 'This is a Content...-435', '[38710, 82003, 82005, 93793, 82006, 82044, 82001]', '["http://static.oschina.net/uploads/img/201604/22172507_aMmH.jpg"]');

PostgreSQL/single/postgres_sys_Praise.sql

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
CREATE TABLE sys."Praise"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
"momentId" bigint NOT NULL,
5+
"userId" bigint NOT NULL,
6+
date timestamp(6)
7+
);
8+
COMMENT ON COLUMN sys."Praise".id IS '动态id';
9+
COMMENT ON COLUMN sys."Praise"."momentId" IS '唯一标识';
10+
COMMENT ON COLUMN sys."Praise"."userId" IS '用户id';
11+
COMMENT ON COLUMN sys."Praise".date IS '点赞时间';
112
INSERT INTO sys."Praise" (id, "momentId", "userId", date) VALUES (1, 12, 82001, '2017-11-19 13:02:30.000000');
213
INSERT INTO sys."Praise" (id, "momentId", "userId", date) VALUES (2, 15, 82002, '2017-11-19 13:02:30.000000');
314
INSERT INTO sys."Praise" (id, "momentId", "userId", date) VALUES (3, 32, 82003, '2017-11-19 13:02:30.000000');

PostgreSQL/single/postgres_sys_Request.sql

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
CREATE TABLE sys."Request"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
version smallint NOT NULL,
5+
method varchar(10),
6+
tag varchar(20) NOT NULL,
7+
structure jsonb NOT NULL,
8+
detail varchar(10000),
9+
date timestamp(6)
10+
);
11+
COMMENT ON COLUMN sys."Request".id IS '唯一标识';
12+
COMMENT ON COLUMN sys."Request".version IS 'GET,HEAD可用任意结构访问任意开放内容,不需要这个字段。
13+
其它的操作因为写入了结构和内容,所以都需要,按照不同的version选择对应的structure。
14+
15+
自动化版本管理:
16+
Request JSON最外层可以传 "version":Integer 。
17+
1.未传或 <= 0,用最新版。 "@order":"version-"
18+
2.已传且 > 0,用version以上的可用版本的最低版本。 "@order":"version+", "version{}":">={version}"';
19+
COMMENT ON COLUMN sys."Request".method IS '只限于GET,HEAD外的操作方法。';
20+
COMMENT ON COLUMN sys."Request".tag IS '标签';
21+
COMMENT ON COLUMN sys."Request".structure IS '结构';
22+
COMMENT ON COLUMN sys."Request".detail IS '详细说明';
23+
COMMENT ON COLUMN sys."Request".date IS '创建时间';
124
INSERT INTO sys."Request" (id, version, method, tag, structure, detail, date) VALUES (1, 1, 'POST', 'register', '{"User": {"UPDATE": {"id@": "Privacy/id"}, "DISALLOW": "id", "NECESSARY": "name"}, "Privacy": {"UNIQUE": "phone", "VERIFY": {"phone~": "phone"}, "DISALLOW": "id", "NECESSARY": "_password,phone"}}', 'UNIQUE校验phone是否已存在。VERIFY校验phone是否符合手机号的格式', '2017-02-01 11:19:51.000000');
225
INSERT INTO sys."Request" (id, version, method, tag, structure, detail, date) VALUES (2, 1, 'POST', 'Moment', '{"INSERT": {"@role": "OWNER", "pictureList": [], "praiseUserIdList": []}, "UPDATE": {"verifyIdList-()": "verifyIdList(praiseUserIdList)", "verifyURLList-()": "verifyURLList(pictureList)"}, "DISALLOW": "id"}', 'INSERT当没传pictureList和praiseUserIdList时用空数组[]补全,保证不会为null', '2017-02-01 11:19:51.000000');
326
INSERT INTO sys."Request" (id, version, method, tag, structure, detail, date) VALUES (3, 1, 'POST', 'Comment', '{"UPDATE": {"@role": "OWNER"}, "DISALLOW": "id", "NECESSARY": "momentId,content"}', '必须传userId,momentId,content,不允许传id', '2017-02-01 11:19:51.000000');
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
CREATE TABLE sys."Response"
2+
(
3+
id bigint PRIMARY KEY NOT NULL,
4+
method varchar(10),
5+
model varchar(20) NOT NULL,
6+
structure text NOT NULL,
7+
detail varchar(10000),
8+
date timestamp(6)
9+
);
10+
COMMENT ON COLUMN sys."Response".id IS '唯一标识';
11+
COMMENT ON COLUMN sys."Response".method IS '方法';
12+
COMMENT ON COLUMN sys."Response".model IS '表名,table是SQL关键词不能用';
13+
COMMENT ON COLUMN sys."Response".structure IS '结构';
14+
COMMENT ON COLUMN sys."Response".detail IS '详细说明';
15+
COMMENT ON COLUMN sys."Response".date IS '创建日期';
16+
CREATE INDEX "id_UNIQUE" ON sys."Response" (id);
117
INSERT INTO sys."Response" (id, method, model, structure, detail, date) VALUES (1, 'GET', 'User', '{"put": {"extra": "Response works! Test:He(She) is lazy and wrote nothing here"}, "remove": "phone"}', null, '2017-05-22 12:36:47.000000');
218
INSERT INTO sys."Response" (id, method, model, structure, detail, date) VALUES (2, 'DELETE', 'Comment', '{"remove": "Comment:child"}', null, '2017-05-03 17:51:26.000000');
319
INSERT INTO sys."Response" (id, method, model, structure, detail, date) VALUES (3, 'DELETE', 'Moment', '{"remove": "Comment"}', null, '2017-05-03 17:51:26.000000');

0 commit comments

Comments
 (0)