From 7cad1e644323b1ba7d308275eff95858f85db09c Mon Sep 17 00:00:00 2001 From: Michael Li Date: Fri, 10 Mar 2023 17:45:34 +0800 Subject: [PATCH] add postgresql ddl and optimize mysql/sqlite3 ddl --- ...wn.sql => 0001_initialize_schema.down.sql} | 0 ...a.up.sql => 0001_initialize_schema.up.sql} | 0 ...down.sql => 0002_post_visibility.down.sql} | 2 - ...ity.up.sql => 0002_post_visibility.up.sql} | 1 - ...down.sql => 0003_feature_contact.down.sql} | 0 ...act.up.sql => 0003_feature_contact.up.sql} | 0 .../mysql/0004_optimize_idx.down.sql | 66 +++ .../migration/mysql/0004_optimize_idx.up.sql | 65 +++ .../postgres/0001_initialize_schema.down.sql | 15 + .../postgres/0001_initialize_schema.up.sql | 230 +++++++++ .../postgres/0002_post_visibility.down.sql | 1 + .../postgres/0002_post_visibility.up.sql | 2 + .../postgres/0003_feature_contact.down.sql | 2 + .../postgres/0003_feature_contact.up.sql | 27 ++ .../postgres/001_initialize_schema.down.sql | 1 - .../postgres/001_initialize_schema.up.sql | 1 - .../postgres/002_post_visibility.down.sql | 1 - .../postgres/002_post_visibility.up.sql | 1 - .../postgres/003_feature_contact.down.sql | 1 - .../postgres/003_feature_contact.up.sql | 1 - ...wn.sql => 0001_initialize_schema.down.sql} | 0 ...a.up.sql => 0001_initialize_schema.up.sql} | 0 .../sqlite3/0002_post_visibility.down.sql | 1 + ...ity.up.sql => 0002_post_visibility.up.sql} | 0 ...down.sql => 0003_feature_contact.down.sql} | 0 ...act.up.sql => 0003_feature_contact.up.sql} | 0 .../sqlite3/0004_optimize_idx.down.sql | 39 ++ .../sqlite3/0004_optimize_idx.up.sql | 219 +++++++++ .../sqlite3/002_post_visibility.down.sql | 3 - scripts/paopao-mysql.sql | 454 +++++++++--------- scripts/paopao-postgres.sql | 284 ++++++++++- scripts/paopao-sqlite3.sql | 173 ++++++- 32 files changed, 1340 insertions(+), 250 deletions(-) rename scripts/migration/mysql/{001_initialize_schema.down.sql => 0001_initialize_schema.down.sql} (100%) rename scripts/migration/mysql/{001_initialize_schema.up.sql => 0001_initialize_schema.up.sql} (100%) rename scripts/migration/mysql/{002_post_visibility.down.sql => 0002_post_visibility.down.sql} (52%) rename scripts/migration/mysql/{002_post_visibility.up.sql => 0002_post_visibility.up.sql} (99%) rename scripts/migration/mysql/{003_feature_contact.down.sql => 0003_feature_contact.down.sql} (100%) rename scripts/migration/mysql/{003_feature_contact.up.sql => 0003_feature_contact.up.sql} (100%) create mode 100644 scripts/migration/mysql/0004_optimize_idx.down.sql create mode 100644 scripts/migration/mysql/0004_optimize_idx.up.sql create mode 100644 scripts/migration/postgres/0001_initialize_schema.down.sql create mode 100644 scripts/migration/postgres/0001_initialize_schema.up.sql create mode 100644 scripts/migration/postgres/0002_post_visibility.down.sql create mode 100644 scripts/migration/postgres/0002_post_visibility.up.sql create mode 100644 scripts/migration/postgres/0003_feature_contact.down.sql create mode 100644 scripts/migration/postgres/0003_feature_contact.up.sql delete mode 100644 scripts/migration/postgres/001_initialize_schema.down.sql delete mode 100644 scripts/migration/postgres/001_initialize_schema.up.sql delete mode 100644 scripts/migration/postgres/002_post_visibility.down.sql delete mode 100644 scripts/migration/postgres/002_post_visibility.up.sql delete mode 100644 scripts/migration/postgres/003_feature_contact.down.sql delete mode 100644 scripts/migration/postgres/003_feature_contact.up.sql rename scripts/migration/sqlite3/{001_initialize_schema.down.sql => 0001_initialize_schema.down.sql} (100%) rename scripts/migration/sqlite3/{001_initialize_schema.up.sql => 0001_initialize_schema.up.sql} (100%) create mode 100644 scripts/migration/sqlite3/0002_post_visibility.down.sql rename scripts/migration/sqlite3/{002_post_visibility.up.sql => 0002_post_visibility.up.sql} (100%) rename scripts/migration/sqlite3/{003_feature_contact.down.sql => 0003_feature_contact.down.sql} (100%) rename scripts/migration/sqlite3/{003_feature_contact.up.sql => 0003_feature_contact.up.sql} (100%) create mode 100644 scripts/migration/sqlite3/0004_optimize_idx.down.sql create mode 100644 scripts/migration/sqlite3/0004_optimize_idx.up.sql delete mode 100644 scripts/migration/sqlite3/002_post_visibility.down.sql diff --git a/scripts/migration/mysql/001_initialize_schema.down.sql b/scripts/migration/mysql/0001_initialize_schema.down.sql similarity index 100% rename from scripts/migration/mysql/001_initialize_schema.down.sql rename to scripts/migration/mysql/0001_initialize_schema.down.sql diff --git a/scripts/migration/mysql/001_initialize_schema.up.sql b/scripts/migration/mysql/0001_initialize_schema.up.sql similarity index 100% rename from scripts/migration/mysql/001_initialize_schema.up.sql rename to scripts/migration/mysql/0001_initialize_schema.up.sql diff --git a/scripts/migration/mysql/002_post_visibility.down.sql b/scripts/migration/mysql/0002_post_visibility.down.sql similarity index 52% rename from scripts/migration/mysql/002_post_visibility.down.sql rename to scripts/migration/mysql/0002_post_visibility.down.sql index 5b61db49..bc0931c8 100644 --- a/scripts/migration/mysql/002_post_visibility.down.sql +++ b/scripts/migration/mysql/0002_post_visibility.down.sql @@ -1,3 +1 @@ ALTER TABLE `p_post` DROP COLUMN `visibility`; - -DROP INDEX `idx_visibility` ON `p_post`; diff --git a/scripts/migration/mysql/002_post_visibility.up.sql b/scripts/migration/mysql/0002_post_visibility.up.sql similarity index 99% rename from scripts/migration/mysql/002_post_visibility.up.sql rename to scripts/migration/mysql/0002_post_visibility.up.sql index 349d0553..8b8770e6 100644 --- a/scripts/migration/mysql/002_post_visibility.up.sql +++ b/scripts/migration/mysql/0002_post_visibility.up.sql @@ -1,3 +1,2 @@ ALTER TABLE `p_post` ADD COLUMN `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见'; - CREATE INDEX `idx_visibility` ON `p_post` ( `visibility` ) USING BTREE; diff --git a/scripts/migration/mysql/003_feature_contact.down.sql b/scripts/migration/mysql/0003_feature_contact.down.sql similarity index 100% rename from scripts/migration/mysql/003_feature_contact.down.sql rename to scripts/migration/mysql/0003_feature_contact.down.sql diff --git a/scripts/migration/mysql/003_feature_contact.up.sql b/scripts/migration/mysql/0003_feature_contact.up.sql similarity index 100% rename from scripts/migration/mysql/003_feature_contact.up.sql rename to scripts/migration/mysql/0003_feature_contact.up.sql diff --git a/scripts/migration/mysql/0004_optimize_idx.down.sql b/scripts/migration/mysql/0004_optimize_idx.down.sql new file mode 100644 index 00000000..29a27a3d --- /dev/null +++ b/scripts/migration/mysql/0004_optimize_idx.down.sql @@ -0,0 +1,66 @@ +ALTER TABLE `p_attachment` + RENAME KEY `idx_attachment_user_id` TO `idx_user`; + +ALTER TABLE `p_captcha` + RENAME KEY `idx_captcha_phone` TO `idx_phone`, + RENAME KEY `idx_captcha_expired_on` TO `idx_expired_on`, + RENAME KEY `idx_captcha_use_times` TO `idx_use_times`; + +ALTER TABLE `p_comment` + RENAME KEY `idx_comment_post_id` TO `idx_post`, + RENAME KEY `idx_comment_user_id` TO `idx_user`; + +ALTER TABLE `p_comment_content` + RENAME KEY `idx_comment_content_comment_id` TO `idx_reply`, + RENAME KEY `idx_comment_content_user_id` TO `idx_user`, + RENAME KEY `idx_comment_content_type` TO `idx_type`, + RENAME KEY `idx_comment_content_sort` TO `idx_sort`; + +ALTER TABLE `p_comment_reply` + RENAME KEY `idx_comment_reply_comment_id` TO `idx_comment`; + +ALTER TABLE `p_message` + RENAME KEY `idx_message_receiver_user_id` TO `idx_receiver`, + RENAME KEY `idx_message_is_read` TO `idx_is_read`, + RENAME KEY `idx_message_type` TO `idx_type`; + +ALTER TABLE `p_post` + RENAME KEY `idx_post_user_id` TO `idx_user`, + RENAME KEY `idx_post_visibility` TO `idx_visibility`; + +ALTER TABLE `p_post_attachment_bill` + RENAME KEY `idx_post_attachment_bill_post_id` TO `idx_post`, + RENAME KEY `idx_post_attachment_bill_user_id` TO `idx_user`; + +ALTER TABLE `p_post_collection` + RENAME KEY `idx_post_collection_post_id` TO `idx_post`, + RENAME KEY `idx_post_collection_user_id` TO `idx_user`; + +ALTER TABLE `p_post_content` + RENAME KEY `idx_post_content_post_id` TO `idx_post`, + RENAME KEY `idx_post_content_user_id` TO `idx_user`; + +ALTER TABLE `p_post_star` + RENAME KEY `idx_post_star_post_id` TO `idx_post`, + RENAME KEY `idx_post_star_user_id` TO `idx_user`; + +ALTER TABLE `p_tag` + RENAME KEY `idx_tag_user_id` TO `idx_user`, + RENAME KEY `idx_tag_quote_num` TO `idx_num`; + +ALTER TABLE `p_user` + RENAME KEY `idx_user_username` TO `idx_username`, + RENAME KEY `idx_user_phone` TO `idx_phone`; + +ALTER TABLE `p_wallet_recharge` + RENAME KEY `idx_wallet_recharge_user_id` TO `idx_user`, + RENAME KEY `idx_wallet_recharge_trade_no` TO `idx_trade_no`, + RENAME KEY `idx_wallet_recharge_trade_status` TO `idx_trade_status`; + +ALTER TABLE `p_wallet_statement` + RENAME KEY `idx_wallet_statement_user_id` TO `idx_user`; + +ALTER TABLE `p_contact` + RENAME KEY `idx_contact_user_friend` TO `idx_user_friend_id`, + RENAME KEY `idx_contact_user_friend_status` TO `idx_user_friend_status`; + \ No newline at end of file diff --git a/scripts/migration/mysql/0004_optimize_idx.up.sql b/scripts/migration/mysql/0004_optimize_idx.up.sql new file mode 100644 index 00000000..b87a7973 --- /dev/null +++ b/scripts/migration/mysql/0004_optimize_idx.up.sql @@ -0,0 +1,65 @@ +ALTER TABLE `p_attachment` + RENAME KEY `idx_user` TO `idx_attachment_user_id`; + +ALTER TABLE `p_captcha` + RENAME KEY `idx_phone` TO `idx_captcha_phone`, + RENAME KEY `idx_expired_on` TO `idx_captcha_expired_on`, + RENAME KEY `idx_use_times` TO `idx_captcha_use_times`; + +ALTER TABLE `p_comment` + RENAME KEY `idx_post` TO `idx_comment_post_id`, + RENAME KEY `idx_user` TO `idx_comment_user_id`; + +ALTER TABLE `p_comment_content` + RENAME KEY `idx_reply` TO `idx_comment_content_comment_id`, + RENAME KEY `idx_user` TO `idx_comment_content_user_id`, + RENAME KEY `idx_type` TO `idx_comment_content_type`, + RENAME KEY `idx_sort` TO `idx_comment_content_sort`; + +ALTER TABLE `p_comment_reply` + RENAME KEY `idx_comment` TO `idx_comment_reply_comment_id`; + +ALTER TABLE `p_message` + RENAME KEY `idx_receiver` TO `idx_message_receiver_user_id`, + RENAME KEY `idx_is_read` TO `idx_message_is_read`, + RENAME KEY `idx_type` TO `idx_message_type`; + +ALTER TABLE `p_post` + RENAME KEY `idx_user` TO `idx_post_user_id`, + RENAME KEY `idx_visibility` TO `idx_post_visibility`; + +ALTER TABLE `p_post_attachment_bill` + RENAME KEY `idx_post` TO `idx_post_attachment_bill_post_id`, + RENAME KEY `idx_user` TO `idx_post_attachment_bill_user_id`; + +ALTER TABLE `p_post_collection` + RENAME KEY `idx_post` TO `idx_post_collection_post_id`, + RENAME KEY `idx_user` TO `idx_post_collection_user_id`; + +ALTER TABLE `p_post_content` + RENAME KEY `idx_post` TO `idx_post_content_post_id`, + RENAME KEY `idx_user` TO `idx_post_content_user_id`; + +ALTER TABLE `p_post_star` + RENAME KEY `idx_post` TO `idx_post_star_post_id`, + RENAME KEY `idx_user` TO `idx_post_star_user_id`; + +ALTER TABLE `p_tag` + RENAME KEY `idx_user` TO `idx_tag_user_id`, + RENAME KEY `idx_num` TO `idx_tag_quote_num`; + +ALTER TABLE `p_user` + RENAME KEY `idx_username` TO `idx_user_username`, + RENAME KEY `idx_phone` TO `idx_user_phone`; + +ALTER TABLE `p_wallet_recharge` + RENAME KEY `idx_user` TO `idx_wallet_recharge_user_id`, + RENAME KEY `idx_trade_no` TO `idx_wallet_recharge_trade_no`, + RENAME KEY `idx_trade_status` TO `idx_wallet_recharge_trade_status`; + +ALTER TABLE `p_wallet_statement` + RENAME KEY `idx_user` To `idx_wallet_statement_user_id`; + +ALTER TABLE `p_contact` + RENAME KEY `idx_user_friend_id` TO `idx_contact_user_friend`, + RENAME KEY `idx_user_friend_status` TO `idx_contact_user_friend_status`; diff --git a/scripts/migration/postgres/0001_initialize_schema.down.sql b/scripts/migration/postgres/0001_initialize_schema.down.sql new file mode 100644 index 00000000..1e8371fd --- /dev/null +++ b/scripts/migration/postgres/0001_initialize_schema.down.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS p_attachment; +DROP TABLE IF EXISTS p_captcha; +DROP TABLE IF EXISTS p_comment; +DROP TABLE IF EXISTS p_comment_content; +DROP TABLE IF EXISTS p_comment_reply; +DROP TABLE IF EXISTS p_message; +DROP TABLE IF EXISTS p_post; +DROP TABLE IF EXISTS p_post_attachment_bill; +DROP TABLE IF EXISTS p_post_collection; +DROP TABLE IF EXISTS p_post_content; +DROP TABLE IF EXISTS p_post_star; +DROP TABLE IF EXISTS p_tag; +DROP TABLE IF EXISTS p_user; +DROP TABLE IF EXISTS p_wallet_recharge; +DROP TABLE IF EXISTS p_wallet_statement; diff --git a/scripts/migration/postgres/0001_initialize_schema.up.sql b/scripts/migration/postgres/0001_initialize_schema.up.sql new file mode 100644 index 00000000..08e6f5b3 --- /dev/null +++ b/scripts/migration/postgres/0001_initialize_schema.up.sql @@ -0,0 +1,230 @@ +CREATE TABLE p_attachment ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + file_size BIGINT NOT NULL, + img_width BIGINT NOT NULL DEFAULT 0, + img_height BIGINT NOT NULL DEFAULT 0, + "type" SMALLINT NOT NULL DEFAULT 1, -- 1图片、2视频、3其他附件 + content VARCHAR(255) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除 +); +CREATE INDEX idx_attachment_user_id ON p_attachment USING btree (id); + +CREATE TABLE p_captcha ( + id BIGSERIAL PRIMARY KEY, + phone VARCHAR(16), + captcha VARCHAR(16), + use_times INTEGER NOT NULL DEFAULT 0, + expired_on BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除' +); +CREATE INDEX idx_captcha_phone ON p_captcha USING btree (phone); +CREATE INDEX idx_captcha_expired_on ON p_captcha USING btree (expired_on); +CREATE INDEX idx_captcha_use_times ON p_captcha USING btree (use_times); + +CREATE TABLE p_comment ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + ip VARCHAR(64) NOT NULL DEFAULT '', + ip_loc VARCHAR(64) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_post_id ON p_comment USING btree (post_id); +CREATE INDEX idx_comment_user_id ON p_comment USING btree (user_id); + +CREATE TABLE p_comment_content ( + id BIGSERIAL PRIMARY KEY, + comment_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(255) NOT NULL DEFAULT '', + "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址, + sort BIGINT NOT NULL DEFAULT 100, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_content_comment_id ON p_comment_content USING btree (comment_id); +CREATE INDEX idx_comment_content_user_id ON p_comment_content USING btree (user_id); +CREATE INDEX idx_comment_content_type ON p_comment_content USING btree ("type"); +CREATE INDEX idx_comment_content_sort ON p_comment_content USING btree (sort); + +CREATE TABLE p_comment_reply ( + id BIGSERIAL PRIMARY KEY, + comment_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + at_user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(255) NOT NULL DEFAULT '', + ip VARCHAR(64) NOT NULL DEFAULT '', + ip_loc VARCHAR(64) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_reply_comment_id ON p_comment_reply USING btree (comment_id); + +CREATE TABLE p_message ( + id BIGSERIAL PRIMARY KEY, + sender_user_id BIGINT NOT NULL DEFAULT 0, + receiver_user_id BIGINT NOT NULL DEFAULT 0, + type SMALLINT NOT NULL DEFAULT 1, + brief VARCHAR(255) NOT NULL DEFAULT '', + content VARCHAR(255) NOT NULL DEFAULT '', + post_id BIGINT NOT NULL DEFAULT 0, + comment_id BIGINT NOT NULL DEFAULT 0, + reply_id BIGINT NOT NULL DEFAULT 0, + is_read SMALLINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_message_receiver_user_id ON p_message USING btree (receiver_user_id); +CREATE INDEX idx_message_is_read ON p_message USING btree (is_read); +CREATE INDEX idx_message_type ON p_message USING btree ("type"); + +CREATE TABLE p_post ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + comment_count BIGINT NOT NULL DEFAULT 0, + collection_count BIGINT NOT NULL DEFAULT 0, + upvote_count BIGINT NOT NULL DEFAULT 0, + is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶 + is_essence SMALLINT NOT NULL DEFAULT 0, -- 是否精华 + is_lock SMALLINT NOT NULL DEFAULT 0, -- 是否锁定 + latest_replied_on BIGINT NOT NULL DEFAULT 0, -- 最新回复时间 + tags VARCHAR(255) NOT NULL DEFAULT '', + attachment_price BIGINT NOT NULL DEFAULT 0, -- 附件价格(分) + ip VARCHAR(64) NOT NULL DEFAULT '', -- IP地址 + ip_loc VARCHAR(64) NOT NULL DEFAULT '', -- IP城市地址 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_user_id ON p_post USING btree (user_id); + +CREATE TABLE p_post_attachment_bill ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + paid_amount BIGINT NOT NULL DEFAULT 0, -- 支付金额 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_attachment_bill_post_id ON p_post_attachment_bill USING btree (post_id); +CREATE INDEX idx_post_attachment_bill_user_id ON p_post_attachment_bill USING btree (user_id); + +CREATE TABLE p_post_collection ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_collection_post_id ON p_post_collection USING btree (post_id); +CREATE INDEX idx_post_collection_user_id ON p_post_collection USING btree (user_id); + +CREATE TABLE p_post_content ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(2000) NOT NULL DEFAULT '', + "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源 + sort SMALLINT NOT NULL DEFAULT 100, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_content_post_id ON p_post_content USING btree (post_id); +CREATE INDEX idx_post_content_user_id ON p_post_content USING btree (user_id); + +CREATE TABLE p_post_star ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_star_post_id ON p_post_star USING btree (post_id); +CREATE INDEX idx_post_star_user_id ON p_post_star USING btree (user_id); + +CREATE TABLE p_tag ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + tag VARCHAR(255) NOT NULL, + quote_num BIGINT NOT NULL DEFAULT 0, -- 引用数 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_tag_tag ON p_tag USING btree (tag); +CREATE INDEX idx_tag_user_id ON p_tag USING btree (user_id); +CREATE INDEX idx_tag_quote_num ON p_tag USING btree (quote_num); + +CREATE TABLE p_user ( + id BIGSERIAL PRIMARY KEY, + nickname VARCHAR(32) NOT NULL DEFAULT '', + username VARCHAR(32) NOT NULL DEFAULT '', + phone VARCHAR(16) NOT NULL DEFAULT '', -- 手机号 + password VARCHAR(32) NOT NULL DEFAULT '', -- MD5密码 + salt VARCHAR(16) NOT NULL DEFAULT '', -- 盐值 + status SMALLINT NOT NULL DEFAULT 1, -- 状态,1正常,2停用 + avatar VARCHAR(255) NOT NULL DEFAULT '', + balance BIGINT NOT NULL, -- 用户余额(分) + is_admin SMALLINT NOT NULL DEFAULT 0, -- 是否管理员 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_user_username ON p_user USING btree (username); +CREATE INDEX idx_user_phone ON p_user USING btree (phone); + +CREATE TABLE p_wallet_recharge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + amount BIGINT NOT NULL DEFAULT 0, -- 充值金额 + trade_no VARCHAR(64) NOT NULL DEFAULT '', -- 支付宝订单号 + trade_status VARCHAR(32) NOT NULL DEFAULT '', -- 交易状态 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0 为未删除、1 为已删除 +); +CREATE INDEX idx_wallet_recharge_user_id ON p_wallet_recharge USING btree (user_id); +CREATE INDEX idx_wallet_recharge_trade_no ON p_wallet_recharge USING btree (trade_no); +CREATE INDEX idx_wallet_recharge_trade_status ON p_wallet_recharge USING btree (trade_status); + +CREATE TABLE p_wallet_statement ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + change_amount BIGINT NOT NULL DEFAULT 0, -- 变动金额 + balance_snapshot BIGINT NOT NULL DEFAULT 0, -- 资金快照 + reason VARCHAR(255) NOT NULL, -- 变动原因 + post_id BIGINT NOT NULL DEFAULT 0, -- 关联动态 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_wallet_statement_user_id ON p_wallet_statement USING btree (user_id); diff --git a/scripts/migration/postgres/0002_post_visibility.down.sql b/scripts/migration/postgres/0002_post_visibility.down.sql new file mode 100644 index 00000000..2c9986ac --- /dev/null +++ b/scripts/migration/postgres/0002_post_visibility.down.sql @@ -0,0 +1 @@ +ALTER TABLE p_post DROP COLUMN visibility; diff --git a/scripts/migration/postgres/0002_post_visibility.up.sql b/scripts/migration/postgres/0002_post_visibility.up.sql new file mode 100644 index 00000000..5be19c66 --- /dev/null +++ b/scripts/migration/postgres/0002_post_visibility.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE p_post ADD COLUMN visibility SMALLINT NOT NULL DEFAULT 0; -- 可见性 0公开 1私密 2好友可见 +CREATE INDEX idx_visibility ON p_post USING btree (visibility) diff --git a/scripts/migration/postgres/0003_feature_contact.down.sql b/scripts/migration/postgres/0003_feature_contact.down.sql new file mode 100644 index 00000000..d3eb2b4e --- /dev/null +++ b/scripts/migration/postgres/0003_feature_contact.down.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS p_contact; +DROP TABLE IF EXISTS p_contact_group; diff --git a/scripts/migration/postgres/0003_feature_contact.up.sql b/scripts/migration/postgres/0003_feature_contact.up.sql new file mode 100644 index 00000000..ba285d31 --- /dev/null +++ b/scripts/migration/postgres/0003_feature_contact.up.sql @@ -0,0 +1,27 @@ +CREATE TABLE p_contact ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL, + friend_id BIGINT NOT NULL, + group_id BIGINT NOT NULL DEFAULT 0, -- 好友分组ID:默认为0无分组 + remark VARCHAR(32) NOT NULL DEFAULT '', -- 好友备注 + status SMALLINT NOT NULL DEFAULT 0, -- 好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友 + is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶, 0否, 1是 + is_black SMALLINT NOT NULL DEFAULT 0, -- 是否为黑名单, 0否, 1是 + is_delete SMALLINT NOT NULL DEFAULT 0, -- 否删除好友, 0否, 1是 + notice_enable SMALLINT NOT NULL DEFAULT 0, -- 是否有消息提醒, 0否, 1是 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_contact_user_friend ON p_contact USING btree (user_id,friend_id); +CREATE INDEX idx_contact_user_friend_status ON p_contact USING btree (user_id, friend_id, status); + +CREATE TABLE p_contact_group ( + id BIGSERIAL PRIMARY KEY, + user_id int NOT NULL DEFAULT 0, + name VARCHAR(32) NOT NULL DEFAULT '', -- 分组名称 + is_delete SMALLINT NOT NULL DEFAULT 1, -- 是否删除, 0否, 1是 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0 +); diff --git a/scripts/migration/postgres/001_initialize_schema.down.sql b/scripts/migration/postgres/001_initialize_schema.down.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/001_initialize_schema.down.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/postgres/001_initialize_schema.up.sql b/scripts/migration/postgres/001_initialize_schema.up.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/001_initialize_schema.up.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/postgres/002_post_visibility.down.sql b/scripts/migration/postgres/002_post_visibility.down.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/002_post_visibility.down.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/postgres/002_post_visibility.up.sql b/scripts/migration/postgres/002_post_visibility.up.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/002_post_visibility.up.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/postgres/003_feature_contact.down.sql b/scripts/migration/postgres/003_feature_contact.down.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/003_feature_contact.down.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/postgres/003_feature_contact.up.sql b/scripts/migration/postgres/003_feature_contact.up.sql deleted file mode 100644 index 3ce95155..00000000 --- a/scripts/migration/postgres/003_feature_contact.up.sql +++ /dev/null @@ -1 +0,0 @@ --- TODO: WIP diff --git a/scripts/migration/sqlite3/001_initialize_schema.down.sql b/scripts/migration/sqlite3/0001_initialize_schema.down.sql similarity index 100% rename from scripts/migration/sqlite3/001_initialize_schema.down.sql rename to scripts/migration/sqlite3/0001_initialize_schema.down.sql diff --git a/scripts/migration/sqlite3/001_initialize_schema.up.sql b/scripts/migration/sqlite3/0001_initialize_schema.up.sql similarity index 100% rename from scripts/migration/sqlite3/001_initialize_schema.up.sql rename to scripts/migration/sqlite3/0001_initialize_schema.up.sql diff --git a/scripts/migration/sqlite3/0002_post_visibility.down.sql b/scripts/migration/sqlite3/0002_post_visibility.down.sql new file mode 100644 index 00000000..bc0931c8 --- /dev/null +++ b/scripts/migration/sqlite3/0002_post_visibility.down.sql @@ -0,0 +1 @@ +ALTER TABLE `p_post` DROP COLUMN `visibility`; diff --git a/scripts/migration/sqlite3/002_post_visibility.up.sql b/scripts/migration/sqlite3/0002_post_visibility.up.sql similarity index 100% rename from scripts/migration/sqlite3/002_post_visibility.up.sql rename to scripts/migration/sqlite3/0002_post_visibility.up.sql diff --git a/scripts/migration/sqlite3/003_feature_contact.down.sql b/scripts/migration/sqlite3/0003_feature_contact.down.sql similarity index 100% rename from scripts/migration/sqlite3/003_feature_contact.down.sql rename to scripts/migration/sqlite3/0003_feature_contact.down.sql diff --git a/scripts/migration/sqlite3/003_feature_contact.up.sql b/scripts/migration/sqlite3/0003_feature_contact.up.sql similarity index 100% rename from scripts/migration/sqlite3/003_feature_contact.up.sql rename to scripts/migration/sqlite3/0003_feature_contact.up.sql diff --git a/scripts/migration/sqlite3/0004_optimize_idx.down.sql b/scripts/migration/sqlite3/0004_optimize_idx.down.sql new file mode 100644 index 00000000..f0bd5fe4 --- /dev/null +++ b/scripts/migration/sqlite3/0004_optimize_idx.down.sql @@ -0,0 +1,39 @@ +PRAGMA foreign_keys = false; + +DROP INDEX IF EXISTS "idx_attachment_user_id"; +DROP INDEX IF EXISTS "idx_captcha_expired_on"; +DROP INDEX IF EXISTS "idx_captcha_phone"; +DROP INDEX IF EXISTS "idx_captcha_use_times"; +DROP INDEX IF EXISTS "idx_comment_post_id"; +DROP INDEX IF EXISTS "idx_comment_user_id"; +DROP INDEX IF EXISTS "idx_comment_content_comment_id"; +DROP INDEX IF EXISTS "idx_comment_content_sort"; +DROP INDEX IF EXISTS "idx_comment_content_type"; +DROP INDEX IF EXISTS "idx_comment_content_user_id"; +DROP INDEX IF EXISTS "idx_comment_reply_comment_id"; +DROP INDEX IF EXISTS "idx_contact_user_friend"; +DROP INDEX IF EXISTS "idx_contact_user_friend_status"; +DROP INDEX IF EXISTS "idx_message_is_read"; +DROP INDEX IF EXISTS "idx_message_receiver_user_id"; +DROP INDEX IF EXISTS "idx_message_type"; +DROP INDEX IF EXISTS "idx_post_user_id"; +DROP INDEX IF EXISTS "idx_post_visibility"; +DROP INDEX IF EXISTS "idx_post_attachment_bill_post_id"; +DROP INDEX IF EXISTS "idx_post_attachment_bill_user_id"; +DROP INDEX IF EXISTS "idx_post_collection_post_id"; +DROP INDEX IF EXISTS "idx_post_collection_user_id"; +DROP INDEX IF EXISTS "idx_post_content_post_id"; +DROP INDEX IF EXISTS "idx_post_content_user_id"; +DROP INDEX IF EXISTS "idx_post_star_post_id"; +DROP INDEX IF EXISTS "idx_post_star_user_id"; +DROP INDEX IF EXISTS "idx_tag"; +DROP INDEX IF EXISTS "idx_tag_quote_num"; +DROP INDEX IF EXISTS "idx_tag_user_id"; +DROP INDEX IF EXISTS "idx_user_phone"; +DROP INDEX IF EXISTS "idx_user_username"; +DROP INDEX IF EXISTS "idx_wallet_recharge_trade_no"; +DROP INDEX IF EXISTS "idx_wallet_recharge_trade_status"; +DROP INDEX IF EXISTS "idx_wallet_recharge_user_id"; +DROP INDEX IF EXISTS "idx_wallet_statement_user_id"; + +PRAGMA foreign_keys = true; diff --git a/scripts/migration/sqlite3/0004_optimize_idx.up.sql b/scripts/migration/sqlite3/0004_optimize_idx.up.sql new file mode 100644 index 00000000..006565ae --- /dev/null +++ b/scripts/migration/sqlite3/0004_optimize_idx.up.sql @@ -0,0 +1,219 @@ +PRAGMA foreign_keys = false; + +DROP INDEX IF EXISTS "main"."idx_user"; +DROP INDEX IF EXISTS "main"."idx_expired_on"; +DROP INDEX IF EXISTS "main"."idx_phone"; +DROP INDEX IF EXISTS "main"."idx_use_times"; +DROP INDEX IF EXISTS "main"."idx_post"; +DROP INDEX IF EXISTS "main"."idx_user_friend_id"; +DROP INDEX IF EXISTS "main"."idx_user_friend_status"; +DROP INDEX IF EXISTS "main"."idx_visibility"; + +-- ---------------------------- +-- Indexes structure for table p_attachment +-- ---------------------------- +CREATE INDEX "idx_attachment_user_id" +ON "p_attachment" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_captcha +-- ---------------------------- +CREATE INDEX "idx_captcha_expired_on" +ON "p_captcha" ( + "expired_on" ASC +); +CREATE INDEX "idx_captcha_phone" +ON "p_captcha" ( + "phone" ASC +); +CREATE INDEX "idx_captcha_use_times" +ON "p_captcha" ( + "use_times" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment +-- ---------------------------- +CREATE INDEX "idx_comment_post_id" +ON "p_comment" ( + "post_id" ASC +); +CREATE INDEX "idx_comment_user_id" +ON "p_comment" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_content +-- ---------------------------- +CREATE INDEX "idx_comment_content_comment_id" +ON "p_comment_content" ( + "comment_id" ASC +); +CREATE INDEX "idx_comment_content_sort" +ON "p_comment_content" ( + "sort" ASC +); +CREATE INDEX "idx_comment_content_type" +ON "p_comment_content" ( + "type" ASC +); +CREATE INDEX "idx_comment_content_user_id" +ON "p_comment_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_reply +-- ---------------------------- +CREATE INDEX "idx_comment_reply_comment_id" +ON "p_comment_reply" ( + "comment_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_contact +-- ---------------------------- +CREATE UNIQUE INDEX "idx_contact_user_friend" +ON "p_contact" ( + "user_id" ASC, + "friend_id" ASC +); +CREATE INDEX "idx_contact_user_friend_status" +ON "p_contact" ( + "user_id" ASC, + "friend_id" ASC, + "status" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_message +-- ---------------------------- +CREATE INDEX "idx_message_is_read" +ON "p_message" ( + "is_read" ASC +); +CREATE INDEX "idx_message_receiver_user_id" +ON "p_message" ( + "receiver_user_id" ASC +); +CREATE INDEX "idx_message_type" +ON "p_message" ( + "type" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post +-- ---------------------------- +CREATE INDEX "idx_post_user_id" +ON "p_post" ( + "user_id" ASC +); +CREATE INDEX "idx_post_visibility" +ON "p_post" ( + "visibility" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_attachment_bill +-- ---------------------------- +CREATE INDEX "idx_post_attachment_bill_post_id" +ON "p_post_attachment_bill" ( + "post_id" ASC +); +CREATE INDEX "idx_post_attachment_bill_user_id" +ON "p_post_attachment_bill" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_collection +-- ---------------------------- +CREATE INDEX "idx_post_collection_post_id" +ON "p_post_collection" ( + "post_id" ASC +); +CREATE INDEX "idx_post_collection_user_id" +ON "p_post_collection" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_content +-- ---------------------------- +CREATE INDEX "idx_post_content_post_id" +ON "p_post_content" ( + "post_id" ASC +); +CREATE INDEX "idx_post_content_user_id" +ON "p_post_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_star +-- ---------------------------- +CREATE INDEX "idx_post_star_post_id" +ON "p_post_star" ( + "post_id" ASC +); +CREATE INDEX "idx_post_star_user_id" +ON "p_post_star" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_tag +-- ---------------------------- +CREATE UNIQUE INDEX "idx_tag" +ON "p_tag" ( + "tag" ASC +); +CREATE INDEX "idx_tag_quote_num" +ON "p_tag" ( + "quote_num" ASC +); +CREATE INDEX "idx_tag_user_id" +ON "p_tag" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_user +-- ---------------------------- +CREATE INDEX "idx_user_phone" +ON "p_user" ( + "phone" ASC +); +CREATE UNIQUE INDEX "idx_user_username" +ON "p_user" ( + "username" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_wallet_recharge +-- ---------------------------- +CREATE INDEX "idx_wallet_recharge_trade_no" +ON "p_wallet_recharge" ( + "trade_no" ASC +); +CREATE INDEX "idx_wallet_recharge_trade_status" +ON "p_wallet_recharge" ( + "trade_status" ASC +); +CREATE INDEX "idx_wallet_recharge_user_id" +ON "p_wallet_recharge" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_wallet_statement +-- ---------------------------- +CREATE INDEX "idx_wallet_statement_user_id" +ON "p_wallet_statement" ( + "user_id" ASC +); + +PRAGMA foreign_keys = true; diff --git a/scripts/migration/sqlite3/002_post_visibility.down.sql b/scripts/migration/sqlite3/002_post_visibility.down.sql deleted file mode 100644 index 551017c1..00000000 --- a/scripts/migration/sqlite3/002_post_visibility.down.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE `p_post` DROP COLUMN `visibility`; - -DROP INDEX "main"."idx_visibility" ON "p_post" diff --git a/scripts/paopao-mysql.sql b/scripts/paopao-mysql.sql index cb6bba55..7cf2db6a 100644 --- a/scripts/paopao-mysql.sql +++ b/scripts/paopao-mysql.sql @@ -6,19 +6,19 @@ SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- DROP TABLE IF EXISTS `p_attachment`; CREATE TABLE `p_attachment` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT, - `user_id` bigint unsigned NOT NULL DEFAULT '0', - `file_size` bigint unsigned NOT NULL, - `img_width` bigint unsigned NOT NULL DEFAULT '0', - `img_height` bigint unsigned NOT NULL DEFAULT '0', - `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '1图片,2视频,3其他附件', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `user_id` bigint unsigned NOT NULL DEFAULT '0', + `file_size` bigint unsigned NOT NULL, + `img_width` bigint unsigned NOT NULL DEFAULT '0', + `img_height` bigint unsigned NOT NULL DEFAULT '0', + `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '1图片,2视频,3其他附件', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_attachment_user` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=100041 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='附件'; -- ---------------------------- @@ -26,19 +26,19 @@ CREATE TABLE `p_attachment` ( -- ---------------------------- DROP TABLE IF EXISTS `p_captcha`; CREATE TABLE `p_captcha` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '验证码ID', - `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号', - `captcha` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '验证码', - `use_times` int unsigned NOT NULL DEFAULT '0' COMMENT '使用次数', - `expired_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '过期时间', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_phone` (`phone`) USING BTREE, - KEY `idx_expired_on` (`expired_on`) USING BTREE, - KEY `idx_use_times` (`use_times`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '验证码ID', + `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号', + `captcha` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '验证码', + `use_times` int unsigned NOT NULL DEFAULT '0' COMMENT '使用次数', + `expired_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '过期时间', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_captcha_phone` (`phone`) USING BTREE, + KEY `idx_captcha_expired_on` (`expired_on`) USING BTREE, + KEY `idx_captcha_use_times` (`use_times`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1021 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='手机验证码'; -- ---------------------------- @@ -46,18 +46,18 @@ CREATE TABLE `p_captcha` ( -- ---------------------------- DROP TABLE IF EXISTS `p_comment`; CREATE TABLE `p_comment` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', - `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_post` (`post_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', + `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_comment_post_id` (`post_id`) USING BTREE, + KEY `idx_comment_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=6001736 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论'; -- ---------------------------- @@ -65,21 +65,21 @@ CREATE TABLE `p_comment` ( -- ---------------------------- DROP TABLE IF EXISTS `p_comment_content`; CREATE TABLE `p_comment_content` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', - `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', - `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址', - `sort` bigint unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_reply` (`comment_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE, - KEY `idx_type` (`type`) USING BTREE, - KEY `idx_sort` (`sort`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', + `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址', + `sort` bigint unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_comment_content_comment_id` (`comment_id`) USING BTREE, + KEY `idx_comment_content_user_id` (`user_id`) USING BTREE, + KEY `idx_comment_content_type` (`type`) USING BTREE, + KEY `idx_comment_content_sort` (`sort`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=11001738 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论内容'; -- ---------------------------- @@ -87,19 +87,19 @@ CREATE TABLE `p_comment_content` ( -- ---------------------------- DROP TABLE IF EXISTS `p_comment_reply`; CREATE TABLE `p_comment_reply` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '回复ID', - `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `at_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '@用户ID', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', - `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', - `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_comment` (`comment_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '回复ID', + `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `at_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '@用户ID', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', + `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_comment_reply_comment_id` (`comment_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=12000015 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论回复'; -- ---------------------------- @@ -107,24 +107,24 @@ CREATE TABLE `p_comment_reply` ( -- ---------------------------- DROP TABLE IF EXISTS `p_message`; CREATE TABLE `p_message` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '消息通知ID', - `sender_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '发送方用户ID', - `receiver_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '接收方用户ID', - `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '通知类型,1动态,2评论,3回复,4私信,99系统通知', - `brief` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '摘要说明', - `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '详细内容', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '动态ID', - `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', - `reply_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '回复ID', - `is_read` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否已读', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_receiver` (`receiver_user_id`) USING BTREE, - KEY `idx_is_read` (`is_read`) USING BTREE, - KEY `idx_type` (`type`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '消息通知ID', + `sender_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '发送方用户ID', + `receiver_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '接收方用户ID', + `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '通知类型,1动态,2评论,3回复,4私信,99系统通知', + `brief` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '摘要说明', + `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '详细内容', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '动态ID', + `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID', + `reply_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '回复ID', + `is_read` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否已读', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_message_receiver_user_id` (`receiver_user_id`) USING BTREE, + KEY `idx_message_is_read` (`is_read`) USING BTREE, + KEY `idx_message_type` (`type`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=16000033 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消息通知'; -- ---------------------------- @@ -132,27 +132,27 @@ CREATE TABLE `p_message` ( -- ---------------------------- DROP TABLE IF EXISTS `p_post`; CREATE TABLE `p_post` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主题ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `comment_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论数', - `collection_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '收藏数', - `upvote_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '点赞数', - `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见', - `is_top` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否置顶', - `is_essence` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否精华', - `is_lock` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否锁定', - `latest_replied_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最新回复时间', - `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标签', - `attachment_price` bigint unsigned NOT NULL DEFAULT '0' COMMENT '附件价格(分)', - `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', - `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE, - KEY `idx_visibility` (`visibility`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主题ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `comment_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论数', + `collection_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '收藏数', + `upvote_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '点赞数', + `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见', + `is_top` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否置顶', + `is_essence` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否精华', + `is_lock` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否锁定', + `latest_replied_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最新回复时间', + `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标签', + `attachment_price` bigint unsigned NOT NULL DEFAULT '0' COMMENT '附件价格(分)', + `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址', + `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_post_user_id` (`user_id`) USING BTREE, + KEY `idx_post_visibility` (`visibility`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1080017989 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章'; -- ---------------------------- @@ -160,17 +160,17 @@ CREATE TABLE `p_post` ( -- ---------------------------- DROP TABLE IF EXISTS `p_post_attachment_bill`; CREATE TABLE `p_post_attachment_bill` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '购买记录ID', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `paid_amount` bigint unsigned NOT NULL DEFAULT '0' COMMENT '支付金额', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_post` (`post_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '购买记录ID', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `paid_amount` bigint unsigned NOT NULL DEFAULT '0' COMMENT '支付金额', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_post_attachment_bill_post_id` (`post_id`) USING BTREE, + KEY `idx_post_attachment_bill_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=5000002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章附件账单'; -- ---------------------------- @@ -178,16 +178,16 @@ CREATE TABLE `p_post_attachment_bill` ( -- ---------------------------- DROP TABLE IF EXISTS `p_post_collection`; CREATE TABLE `p_post_collection` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_post` (`post_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_post_collection_post_id` (`post_id`) USING BTREE, + KEY `idx_post_collection_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=6000012 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章收藏'; -- ---------------------------- @@ -195,19 +195,19 @@ CREATE TABLE `p_post_collection` ( -- ---------------------------- DROP TABLE IF EXISTS `p_post_content`; CREATE TABLE `p_post_content` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', - `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源', - `sort` int unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_post` (`post_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容', + `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源', + `sort` int unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_post_content_post_id` (`post_id`) USING BTREE, + KEY `idx_post_content_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=180022546 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章内容'; -- ---------------------------- @@ -215,16 +215,16 @@ CREATE TABLE `p_post_content` ( -- ---------------------------- DROP TABLE IF EXISTS `p_post_star`; CREATE TABLE `p_post_star` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_post` (`post_id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_post_star_post_id` (`post_id`) USING BTREE, + KEY `idx_post_star_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=6000028 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章点赞'; -- ---------------------------- @@ -232,18 +232,18 @@ CREATE TABLE `p_post_star` ( -- ---------------------------- DROP TABLE IF EXISTS `p_tag`; CREATE TABLE `p_tag` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID', - `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签名', - `quote_num` bigint unsigned NOT NULL DEFAULT '0' COMMENT '引用数', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `idx_tag` (`tag`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE, - KEY `idx_num` (`quote_num`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID', + `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签名', + `quote_num` bigint unsigned NOT NULL DEFAULT '0' COMMENT '引用数', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `idx_tag_tag` (`tag`) USING BTREE, + KEY `idx_tag_user_id` (`user_id`) USING BTREE, + KEY `idx_tag_quote_num` (`quote_num`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=9000065 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签'; -- ---------------------------- @@ -251,23 +251,23 @@ CREATE TABLE `p_tag` ( -- ---------------------------- DROP TABLE IF EXISTS `p_user`; CREATE TABLE `p_user` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', - `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称', - `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户名', - `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号', - `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'MD5密码', - `salt` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '盐值', - `status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '状态,1正常,2停用', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户头像', - `balance` bigint unsigned NOT NULL COMMENT '用户余额(分)', - `is_admin` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否管理员', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `idx_username` (`username`) USING BTREE, - KEY `idx_phone` (`phone`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', + `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称', + `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户名', + `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号', + `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'MD5密码', + `salt` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '盐值', + `status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '状态,1正常,2停用', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户头像', + `balance` bigint unsigned NOT NULL COMMENT '用户余额(分)', + `is_admin` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否管理员', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `idx_user_username` (`username`) USING BTREE, + KEY `idx_user_phone` (`phone`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=100058 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户'; -- ---------------------------- @@ -275,22 +275,22 @@ CREATE TABLE `p_user` ( -- ---------------------------- DROP TABLE IF EXISTS `p_contact`; CREATE TABLE `p_contact` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID', - `user_id` bigint unsigned NOT NULL COMMENT '用户ID', - `friend_id` bigint unsigned NOT NULL COMMENT '好友ID', - `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '好友分组ID:默认为0无分组', - `remark` varchar(32) NOT NULL DEFAULT '' COMMENT '好友备注', - `status` tinyint NOT NULL DEFAULT '0' COMMENT '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友', - `is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶, 0否, 1是', - `is_black` tinyint NOT NULL DEFAULT '0' COMMENT '是否为黑名单, 0否, 1是', - `is_del` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除好友, 0否, 1是', - `notice_enable` tinyint NOT NULL DEFAULT '0' COMMENT '是否有消息提醒, 0否, 1是', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `idx_user_friend_id` (`user_id`,`friend_id`) USING BTREE, - KEY `idx_user_friend_status` (`user_id`, `friend_id`, `status`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID', + `user_id` bigint unsigned NOT NULL COMMENT '用户ID', + `friend_id` bigint unsigned NOT NULL COMMENT '好友ID', + `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '好友分组ID:默认为0无分组', + `remark` varchar(32) NOT NULL DEFAULT '' COMMENT '好友备注', + `status` tinyint NOT NULL DEFAULT '0' COMMENT '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友', + `is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶, 0否, 1是', + `is_black` tinyint NOT NULL DEFAULT '0' COMMENT '是否为黑名单, 0否, 1是', + `is_delete` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除好友, 0否, 1是', + `notice_enable` tinyint NOT NULL DEFAULT '0' COMMENT '是否有消息提醒, 0否, 1是', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `idx_contact_user_friend` (`user_id`,`friend_id`) USING BTREE, + KEY `idx_contact_user_friend_status` (`user_id`, `friend_id`, `status`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人'; -- ---------------------------- @@ -298,14 +298,14 @@ CREATE TABLE `p_contact` ( -- ---------------------------- DROP TABLE IF EXISTS `p_contact_group`; CREATE TABLE `p_contact_group` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID', - `user_id` int NOT NULL DEFAULT '0' COMMENT '用户id', - `name` varchar(32) NOT NULL DEFAULT '' COMMENT '分组名称', - `is_del` tinyint NOT NULL DEFAULT '1' COMMENT '是否删除, 0否, 1是', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - PRIMARY KEY (`id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID', + `user_id` int NOT NULL DEFAULT '0' COMMENT '用户id', + `name` varchar(32) NOT NULL DEFAULT '' COMMENT '分组名称', + `is_delete` tinyint NOT NULL DEFAULT '1' COMMENT '是否删除, 0否, 1是', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人分组'; -- ---------------------------- @@ -313,19 +313,19 @@ CREATE TABLE `p_contact_group` ( -- ---------------------------- DROP TABLE IF EXISTS `p_wallet_recharge`; CREATE TABLE `p_wallet_recharge` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '充值ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `amount` bigint NOT NULL DEFAULT '0' COMMENT '充值金额', - `trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '支付宝订单号', - `trade_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '交易状态', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE, - KEY `idx_trade_no` (`trade_no`) USING BTREE, - KEY `idx_trade_status` (`trade_status`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '充值ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `amount` bigint NOT NULL DEFAULT '0' COMMENT '充值金额', + `trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '支付宝订单号', + `trade_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '交易状态', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_wallet_recharge_user_id` (`user_id`) USING BTREE, + KEY `idx_wallet_recharge_trade_no` (`trade_no`) USING BTREE, + KEY `idx_wallet_recharge_trade_status` (`trade_status`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10023 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水'; -- ---------------------------- @@ -333,18 +333,18 @@ CREATE TABLE `p_wallet_recharge` ( -- ---------------------------- DROP TABLE IF EXISTS `p_wallet_statement`; CREATE TABLE `p_wallet_statement` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '账单ID', - `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', - `change_amount` bigint NOT NULL DEFAULT '0' COMMENT '变动金额', - `balance_snapshot` bigint NOT NULL DEFAULT '0' COMMENT '资金快照', - `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动原因', - `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联动态', - `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', - `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', - `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', - `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', - PRIMARY KEY (`id`) USING BTREE, - KEY `idx_user` (`user_id`) USING BTREE + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '账单ID', + `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID', + `change_amount` bigint NOT NULL DEFAULT '0' COMMENT '变动金额', + `balance_snapshot` bigint NOT NULL DEFAULT '0' COMMENT '资金快照', + `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动原因', + `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联动态', + `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', + `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', + `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间', + `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除', + PRIMARY KEY (`id`) USING BTREE, + KEY `idx_wallet_statement_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10010 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水'; SET FOREIGN_KEY_CHECKS = 1; diff --git a/scripts/paopao-postgres.sql b/scripts/paopao-postgres.sql index 3ce95155..c7b00959 100644 --- a/scripts/paopao-postgres.sql +++ b/scripts/paopao-postgres.sql @@ -1 +1,283 @@ --- TODO: WIP +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = off; +SET check_function_bodies = false; +SET client_min_messages = warning; +SET escape_string_warning = off; + +DROP TABLE IF EXISTS p_attachment; +CREATE TABLE p_attachment ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + file_size BIGINT NOT NULL, + img_width BIGINT NOT NULL DEFAULT 0, + img_height BIGINT NOT NULL DEFAULT 0, + "type" SMALLINT NOT NULL DEFAULT 1, -- 1图片、2视频、3其他附件 + content VARCHAR(255) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除 +); +CREATE INDEX idx_attachment_user_id ON p_attachment USING btree (id); + +DROP TABLE IF EXISTS p_captcha; +CREATE TABLE p_captcha ( + id BIGSERIAL PRIMARY KEY, + phone VARCHAR(16), + captcha VARCHAR(16), + use_times INTEGER NOT NULL DEFAULT 0, + expired_on BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除' +); +CREATE INDEX idx_captcha_phone ON p_captcha USING btree (phone); +CREATE INDEX idx_captcha_expired_on ON p_captcha USING btree (expired_on); +CREATE INDEX idx_captcha_use_times ON p_captcha USING btree (use_times); + +DROP TABLE IF EXISTS p_comment; +CREATE TABLE p_comment ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + ip VARCHAR(64) NOT NULL DEFAULT '', + ip_loc VARCHAR(64) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_post_id ON p_comment USING btree (post_id); +CREATE INDEX idx_comment_user_id ON p_comment USING btree (user_id); + +DROP TABLE IF EXISTS p_comment_content; +CREATE TABLE p_comment_content ( + id BIGSERIAL PRIMARY KEY, + comment_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(255) NOT NULL DEFAULT '', + "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址, + sort BIGINT NOT NULL DEFAULT 100, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_content_comment_id ON p_comment_content USING btree (comment_id); +CREATE INDEX idx_comment_content_user_id ON p_comment_content USING btree (user_id); +CREATE INDEX idx_comment_content_type ON p_comment_content USING btree ("type"); +CREATE INDEX idx_comment_content_sort ON p_comment_content USING btree (sort); + +DROP TABLE IF EXISTS p_comment_reply; +CREATE TABLE p_comment_reply ( + id BIGSERIAL PRIMARY KEY, + comment_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + at_user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(255) NOT NULL DEFAULT '', + ip VARCHAR(64) NOT NULL DEFAULT '', + ip_loc VARCHAR(64) NOT NULL DEFAULT '', + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_comment_reply_comment_id ON p_comment_reply USING btree (comment_id); + +DROP TABLE IF EXISTS p_message; +CREATE TABLE p_message ( + id BIGSERIAL PRIMARY KEY, + sender_user_id BIGINT NOT NULL DEFAULT 0, + receiver_user_id BIGINT NOT NULL DEFAULT 0, + type SMALLINT NOT NULL DEFAULT 1, + brief VARCHAR(255) NOT NULL DEFAULT '', + content VARCHAR(255) NOT NULL DEFAULT '', + post_id BIGINT NOT NULL DEFAULT 0, + comment_id BIGINT NOT NULL DEFAULT 0, + reply_id BIGINT NOT NULL DEFAULT 0, + is_read SMALLINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_message_receiver_user_id ON p_message USING btree (receiver_user_id); +CREATE INDEX idx_message_is_read ON p_message USING btree (is_read); +CREATE INDEX idx_message_type ON p_message USING btree ("type"); + +DROP TABLE IF EXISTS p_post; +CREATE TABLE p_post ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + comment_count BIGINT NOT NULL DEFAULT 0, + collection_count BIGINT NOT NULL DEFAULT 0, + upvote_count BIGINT NOT NULL DEFAULT 0, + visibility SMALLINT NOT NULL DEFAULT 0, -- 可见性 0公开 1私密 2好友可见 + is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶 + is_essence SMALLINT NOT NULL DEFAULT 0, -- 是否精华 + is_lock SMALLINT NOT NULL DEFAULT 0, -- 是否锁定 + latest_replied_on BIGINT NOT NULL DEFAULT 0, -- 最新回复时间 + tags VARCHAR(255) NOT NULL DEFAULT '', + attachment_price BIGINT NOT NULL DEFAULT 0, -- 附件价格(分) + ip VARCHAR(64) NOT NULL DEFAULT '', -- IP地址 + ip_loc VARCHAR(64) NOT NULL DEFAULT '', -- IP城市地址 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_user_id ON p_post USING btree (user_id); +CREATE INDEX idx_post_visibility ON p_post USING btree (visibility); + +DROP TABLE IF EXISTS p_post_attachment_bill; +CREATE TABLE p_post_attachment_bill ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + paid_amount BIGINT NOT NULL DEFAULT 0, -- 支付金额 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_attachment_bill_post_id ON p_post_attachment_bill USING btree (post_id); +CREATE INDEX idx_post_attachment_bill_user_id ON p_post_attachment_bill USING btree (user_id); + +DROP TABLE IF EXISTS p_post_collection; +CREATE TABLE p_post_collection ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_collection_post_id ON p_post_collection USING btree (post_id); +CREATE INDEX idx_post_collection_user_id ON p_post_collection USING btree (user_id); + +DROP TABLE IF EXISTS p_post_content; +CREATE TABLE p_post_content ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + content VARCHAR(2000) NOT NULL DEFAULT '', + "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源 + sort SMALLINT NOT NULL DEFAULT 100, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_content_post_id ON p_post_content USING btree (post_id); +CREATE INDEX idx_post_content_user_id ON p_post_content USING btree (user_id); + +DROP TABLE IF EXISTS p_post_star; +CREATE TABLE p_post_star ( + id BIGSERIAL PRIMARY KEY, + post_id BIGINT NOT NULL DEFAULT 0, + user_id BIGINT NOT NULL DEFAULT 0, + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_post_star_post_id ON p_post_star USING btree (post_id); +CREATE INDEX idx_post_star_user_id ON p_post_star USING btree (user_id); + +DROP TABLE IF EXISTS p_tag; +CREATE TABLE p_tag ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + tag VARCHAR(255) NOT NULL, + quote_num BIGINT NOT NULL DEFAULT 0, -- 引用数 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_tag_tag ON p_tag USING btree (tag); +CREATE INDEX idx_tag_user_id ON p_tag USING btree (user_id); +CREATE INDEX idx_tag_quote_num ON p_tag USING btree (quote_num); + +DROP TABLE IF EXISTS p_user; +CREATE TABLE p_user ( + id BIGSERIAL PRIMARY KEY, + nickname VARCHAR(32) NOT NULL DEFAULT '', + username VARCHAR(32) NOT NULL DEFAULT '', + phone VARCHAR(16) NOT NULL DEFAULT '', -- 手机号 + password VARCHAR(32) NOT NULL DEFAULT '', -- MD5密码 + salt VARCHAR(16) NOT NULL DEFAULT '', -- 盐值 + status SMALLINT NOT NULL DEFAULT 1, -- 状态,1正常,2停用 + avatar VARCHAR(255) NOT NULL DEFAULT '', + balance BIGINT NOT NULL, -- 用户余额(分) + is_admin SMALLINT NOT NULL DEFAULT 0, -- 是否管理员 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_user_username ON p_user USING btree (username); +CREATE INDEX idx_user_phone ON p_user USING btree (phone); + +DROP TABLE IF EXISTS p_contact; +CREATE TABLE p_contact ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL, + friend_id BIGINT NOT NULL, + group_id BIGINT NOT NULL DEFAULT 0, -- 好友分组ID:默认为0无分组 + remark VARCHAR(32) NOT NULL DEFAULT '', -- 好友备注 + status SMALLINT NOT NULL DEFAULT 0, -- 好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友 + is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶, 0否, 1是 + is_black SMALLINT NOT NULL DEFAULT 0, -- 是否为黑名单, 0否, 1是 + is_delete SMALLINT NOT NULL DEFAULT 0, -- 否删除好友, 0否, 1是 + notice_enable SMALLINT NOT NULL DEFAULT 0, -- 是否有消息提醒, 0否, 1是 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0 +); +CREATE UNIQUE INDEX idx_contact_user_friend ON p_contact USING btree (user_id,friend_id); +CREATE INDEX idx_contact_user_friend_status ON p_contact USING btree (user_id, friend_id, status); + +DROP TABLE IF EXISTS p_contact_group; +CREATE TABLE p_contact_group ( + id BIGSERIAL PRIMARY KEY, + user_id int NOT NULL DEFAULT 0, + name VARCHAR(32) NOT NULL DEFAULT '', -- 分组名称 + is_delete SMALLINT NOT NULL DEFAULT 1, -- 是否删除, 0否, 1是 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0 +); + +DROP TABLE IF EXISTS p_wallet_recharge; +CREATE TABLE p_wallet_recharge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + amount BIGINT NOT NULL DEFAULT 0, -- 充值金额 + trade_no VARCHAR(64) NOT NULL DEFAULT '', -- 支付宝订单号 + trade_status VARCHAR(32) NOT NULL DEFAULT '', -- 交易状态 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0 为未删除、1 为已删除 +); +CREATE INDEX idx_wallet_recharge_user_id ON p_wallet_recharge USING btree (user_id); +CREATE INDEX idx_wallet_recharge_trade_no ON p_wallet_recharge USING btree (trade_no); +CREATE INDEX idx_wallet_recharge_trade_status ON p_wallet_recharge USING btree (trade_status); + +DROP TABLE IF EXISTS p_wallet_statement; +CREATE TABLE p_wallet_statement ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL DEFAULT 0, + change_amount BIGINT NOT NULL DEFAULT 0, -- 变动金额 + balance_snapshot BIGINT NOT NULL DEFAULT 0, -- 资金快照 + reason VARCHAR(255) NOT NULL, -- 变动原因 + post_id BIGINT NOT NULL DEFAULT 0, -- 关联动态 + created_on BIGINT NOT NULL DEFAULT 0, + modified_on BIGINT NOT NULL DEFAULT 0, + deleted_on BIGINT NOT NULL DEFAULT 0, + is_del SMALLINT NOT NULL DEFAULT 0 +); +CREATE INDEX idx_wallet_statement_user_id ON p_wallet_statement USING btree (user_id); diff --git a/scripts/paopao-sqlite3.sql b/scripts/paopao-sqlite3.sql index 2764094b..4b4d0ac3 100644 --- a/scripts/paopao-sqlite3.sql +++ b/scripts/paopao-sqlite3.sql @@ -101,10 +101,10 @@ CREATE TABLE "p_contact" ( "group_id" integer NOT NULL, "remark" text(32) NOT NULL, "status" integer NOT NULL, + "notice_enable" integer NOT NULL, "is_top" integer NOT NULL, "is_black" integer NOT NULL, "is_del" integer NOT NULL, - "notice_enable" integer NOT NULL, "created_on" integer NOT NULL, "modified_on" integer NOT NULL, "deleted_on" integer NOT NULL, @@ -169,7 +169,8 @@ CREATE TABLE "p_post" ( "created_on" integer NOT NULL, "modified_on" integer NOT NULL, "deleted_on" integer NOT NULL, - "is_del" integer NOT NULL, `visibility` integer NOT NULL DEFAULT '0', + "is_del" integer NOT NULL, + "visibility" integer NOT NULL, PRIMARY KEY ("id") ); @@ -313,7 +314,7 @@ CREATE TABLE "p_wallet_statement" ( -- ---------------------------- -- Indexes structure for table p_attachment -- ---------------------------- -CREATE INDEX "main"."idx_user" +CREATE INDEX "idx_attachment_user_id" ON "p_attachment" ( "user_id" ASC ); @@ -321,15 +322,15 @@ ON "p_attachment" ( -- ---------------------------- -- Indexes structure for table p_captcha -- ---------------------------- -CREATE INDEX "main"."idx_expired_on" +CREATE INDEX "idx_captcha_expired_on" ON "p_captcha" ( "expired_on" ASC ); -CREATE INDEX "main"."idx_phone" +CREATE INDEX "idx_captcha_phone" ON "p_captcha" ( "phone" ASC ); -CREATE INDEX "main"."idx_use_times" +CREATE INDEX "idx_captcha_use_times" ON "p_captcha" ( "use_times" ASC ); @@ -337,32 +338,184 @@ ON "p_captcha" ( -- ---------------------------- -- Indexes structure for table p_comment -- ---------------------------- -CREATE INDEX "main"."idx_post" +CREATE INDEX "idx_comment_post_id" ON "p_comment" ( "post_id" ASC ); +CREATE INDEX "idx_comment_user_id" +ON "p_comment" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_content +-- ---------------------------- +CREATE INDEX "idx_comment_content_comment_id" +ON "p_comment_content" ( + "comment_id" ASC +); +CREATE INDEX "idx_comment_content_sort" +ON "p_comment_content" ( + "sort" ASC +); +CREATE INDEX "idx_comment_content_type" +ON "p_comment_content" ( + "type" ASC +); +CREATE INDEX "idx_comment_content_user_id" +ON "p_comment_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_comment_reply +-- ---------------------------- +CREATE INDEX "idx_comment_reply_comment_id" +ON "p_comment_reply" ( + "comment_id" ASC +); -- ---------------------------- -- Indexes structure for table p_contact -- ---------------------------- -CREATE UNIQUE INDEX "main"."idx_user_friend_id" +CREATE UNIQUE INDEX "idx_contact_user_friend" ON "p_contact" ( "user_id" ASC, "friend_id" ASC ); -CREATE INDEX "main"."idx_user_friend_status" +CREATE INDEX "idx_contact_user_friend_status" ON "p_contact" ( "user_id" ASC, "friend_id" ASC, "status" ASC ); +-- ---------------------------- +-- Indexes structure for table p_message +-- ---------------------------- +CREATE INDEX "idx_message_is_read" +ON "p_message" ( + "is_read" ASC +); +CREATE INDEX "idx_message_receiver_user_id" +ON "p_message" ( + "receiver_user_id" ASC +); +CREATE INDEX "idx_message_type" +ON "p_message" ( + "type" ASC +); + -- ---------------------------- -- Indexes structure for table p_post -- ---------------------------- -CREATE INDEX "main"."idx_visibility" +CREATE INDEX "idx_post_user_id" +ON "p_post" ( + "user_id" ASC +); +CREATE INDEX "idx_post_visibility" ON "p_post" ( "visibility" ASC ); +-- ---------------------------- +-- Indexes structure for table p_post_attachment_bill +-- ---------------------------- +CREATE INDEX "idx_post_attachment_bill_post_id" +ON "p_post_attachment_bill" ( + "post_id" ASC +); +CREATE INDEX "idx_post_attachment_bill_user_id" +ON "p_post_attachment_bill" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_collection +-- ---------------------------- +CREATE INDEX "idx_post_collection_post_id" +ON "p_post_collection" ( + "post_id" ASC +); +CREATE INDEX "idx_post_collection_user_id" +ON "p_post_collection" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_content +-- ---------------------------- +CREATE INDEX "idx_post_content_post_id" +ON "p_post_content" ( + "post_id" ASC +); +CREATE INDEX "idx_post_content_user_id" +ON "p_post_content" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_post_star +-- ---------------------------- +CREATE INDEX "idx_post_star_post_id" +ON "p_post_star" ( + "post_id" ASC +); +CREATE INDEX "idx_post_star_user_id" +ON "p_post_star" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_tag +-- ---------------------------- +CREATE UNIQUE INDEX "idx_tag" +ON "p_tag" ( + "tag" ASC +); +CREATE INDEX "idx_tag_quote_num" +ON "p_tag" ( + "quote_num" ASC +); +CREATE INDEX "idx_tag_user_id" +ON "p_tag" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_user +-- ---------------------------- +CREATE INDEX "idx_user_phone" +ON "p_user" ( + "phone" ASC +); +CREATE UNIQUE INDEX "idx_user_username" +ON "p_user" ( + "username" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_wallet_recharge +-- ---------------------------- +CREATE INDEX "idx_wallet_recharge_trade_no" +ON "p_wallet_recharge" ( + "trade_no" ASC +); +CREATE INDEX "idx_wallet_recharge_trade_status" +ON "p_wallet_recharge" ( + "trade_status" ASC +); +CREATE INDEX "idx_wallet_recharge_user_id" +ON "p_wallet_recharge" ( + "user_id" ASC +); + +-- ---------------------------- +-- Indexes structure for table p_wallet_statement +-- ---------------------------- +CREATE INDEX "idx_wallet_statement_user_id" +ON "p_wallet_statement" ( + "user_id" ASC +); + PRAGMA foreign_keys = true;