重构提取逻辑,新增 area 表
This commit is contained in:
258
scripts/sql/fill-area.sql
Normal file
258
scripts/sql/fill-area.sql
Normal file
@@ -0,0 +1,258 @@
|
||||
insert into area
|
||||
(name, level)
|
||||
values
|
||||
('上海',1),
|
||||
('云南',1),
|
||||
('内蒙古',1),
|
||||
('北京',1),
|
||||
('吉林',1),
|
||||
('四川',1),
|
||||
('天津',1),
|
||||
('宁夏',1),
|
||||
('安徽',1),
|
||||
('山东',1),
|
||||
('山西',1),
|
||||
('广东',1),
|
||||
('广西',1),
|
||||
('新疆',1),
|
||||
('江苏',1),
|
||||
('江西',1),
|
||||
('河北',1),
|
||||
('河南',1),
|
||||
('浙江',1),
|
||||
('海南',1),
|
||||
('湖北',1),
|
||||
('湖南',1),
|
||||
('甘肃',1),
|
||||
('福建',1),
|
||||
('贵州',1),
|
||||
('辽宁',1),
|
||||
('重庆',1),
|
||||
('陕西',1),
|
||||
('黑龙江',1)
|
||||
;
|
||||
|
||||
|
||||
insert into area
|
||||
(name, level, parent_id)
|
||||
values
|
||||
('上海', 2, (select id from area where name = '上海')),
|
||||
('昆明', 2, (select id from area where name = '云南')),
|
||||
('包头', 2, (select id from area where name = '内蒙古')),
|
||||
('呼伦贝尔', 2, (select id from area where name = '内蒙古')),
|
||||
('呼和浩特', 2, (select id from area where name = '内蒙古')),
|
||||
('赤峰', 2, (select id from area where name = '内蒙古')),
|
||||
('通辽', 2, (select id from area where name = '内蒙古')),
|
||||
('鄂尔多斯', 2, (select id from area where name = '内蒙古')),
|
||||
('北京', 2, (select id from area where name = '北京')),
|
||||
('四平', 2, (select id from area where name = '吉林')),
|
||||
('延边朝鲜族自治州', 2, (select id from area where name = '吉林')),
|
||||
('松原', 2, (select id from area where name = '吉林')),
|
||||
('白山', 2, (select id from area where name = '吉林')),
|
||||
('通化', 2, (select id from area where name = '吉林')),
|
||||
('长春', 2, (select id from area where name = '吉林')),
|
||||
('乐山', 2, (select id from area where name = '四川')),
|
||||
('内江', 2, (select id from area where name = '四川')),
|
||||
('南充', 2, (select id from area where name = '四川')),
|
||||
('宜宾', 2, (select id from area where name = '四川')),
|
||||
('广元', 2, (select id from area where name = '四川')),
|
||||
('德阳', 2, (select id from area where name = '四川')),
|
||||
('成都', 2, (select id from area where name = '四川')),
|
||||
('攀枝花', 2, (select id from area where name = '四川')),
|
||||
('泸州', 2, (select id from area where name = '四川')),
|
||||
('绵阳', 2, (select id from area where name = '四川')),
|
||||
('自贡', 2, (select id from area where name = '四川')),
|
||||
('达州', 2, (select id from area where name = '四川')),
|
||||
('天津', 2, (select id from area where name = '天津')),
|
||||
('银川', 2, (select id from area where name = '宁夏')),
|
||||
('亳州', 2, (select id from area where name = '安徽')),
|
||||
('六安', 2, (select id from area where name = '安徽')),
|
||||
('合肥', 2, (select id from area where name = '安徽')),
|
||||
('安庆', 2, (select id from area where name = '安徽')),
|
||||
('宣城', 2, (select id from area where name = '安徽')),
|
||||
('宿州', 2, (select id from area where name = '安徽')),
|
||||
('池州', 2, (select id from area where name = '安徽')),
|
||||
('淮北', 2, (select id from area where name = '安徽')),
|
||||
('淮南', 2, (select id from area where name = '安徽')),
|
||||
('滁州', 2, (select id from area where name = '安徽')),
|
||||
('芜湖', 2, (select id from area where name = '安徽')),
|
||||
('蚌埠', 2, (select id from area where name = '安徽')),
|
||||
('铜陵', 2, (select id from area where name = '安徽')),
|
||||
('阜阳', 2, (select id from area where name = '安徽')),
|
||||
('马鞍山', 2, (select id from area where name = '安徽')),
|
||||
('黄山', 2, (select id from area where name = '安徽')),
|
||||
('东营', 2, (select id from area where name = '山东')),
|
||||
('临沂', 2, (select id from area where name = '山东')),
|
||||
('威海', 2, (select id from area where name = '山东')),
|
||||
('德州', 2, (select id from area where name = '山东')),
|
||||
('日照', 2, (select id from area where name = '山东')),
|
||||
('枣庄', 2, (select id from area where name = '山东')),
|
||||
('泰安', 2, (select id from area where name = '山东')),
|
||||
('济南', 2, (select id from area where name = '山东')),
|
||||
('济宁', 2, (select id from area where name = '山东')),
|
||||
('淄博', 2, (select id from area where name = '山东')),
|
||||
('滨州', 2, (select id from area where name = '山东')),
|
||||
('潍坊', 2, (select id from area where name = '山东')),
|
||||
('烟台', 2, (select id from area where name = '山东')),
|
||||
('聊城', 2, (select id from area where name = '山东')),
|
||||
('菏泽', 2, (select id from area where name = '山东')),
|
||||
('青岛', 2, (select id from area where name = '山东')),
|
||||
('临汾', 2, (select id from area where name = '山西')),
|
||||
('吕梁', 2, (select id from area where name = '山西')),
|
||||
('大同', 2, (select id from area where name = '山西')),
|
||||
('太原', 2, (select id from area where name = '山西')),
|
||||
('忻州', 2, (select id from area where name = '山西')),
|
||||
('晋城', 2, (select id from area where name = '山西')),
|
||||
('朔州', 2, (select id from area where name = '山西')),
|
||||
('运城', 2, (select id from area where name = '山西')),
|
||||
('长治', 2, (select id from area where name = '山西')),
|
||||
('阳泉', 2, (select id from area where name = '山西')),
|
||||
('东莞', 2, (select id from area where name = '广东')),
|
||||
('中山', 2, (select id from area where name = '广东')),
|
||||
('云浮', 2, (select id from area where name = '广东')),
|
||||
('佛山', 2, (select id from area where name = '广东')),
|
||||
('广州', 2, (select id from area where name = '广东')),
|
||||
('惠州', 2, (select id from area where name = '广东')),
|
||||
('揭阳', 2, (select id from area where name = '广东')),
|
||||
('梅州', 2, (select id from area where name = '广东')),
|
||||
('汕头', 2, (select id from area where name = '广东')),
|
||||
('汕尾', 2, (select id from area where name = '广东')),
|
||||
('江门', 2, (select id from area where name = '广东')),
|
||||
('河源', 2, (select id from area where name = '广东')),
|
||||
('深圳', 2, (select id from area where name = '广东')),
|
||||
('清远', 2, (select id from area where name = '广东')),
|
||||
('湛江', 2, (select id from area where name = '广东')),
|
||||
('潮州', 2, (select id from area where name = '广东')),
|
||||
('珠海', 2, (select id from area where name = '广东')),
|
||||
('肇庆', 2, (select id from area where name = '广东')),
|
||||
('茂名', 2, (select id from area where name = '广东')),
|
||||
('阳江', 2, (select id from area where name = '广东')),
|
||||
('韶关', 2, (select id from area where name = '广东')),
|
||||
('北海', 2, (select id from area where name = '广西')),
|
||||
('南宁', 2, (select id from area where name = '广西')),
|
||||
('柳州', 2, (select id from area where name = '广西')),
|
||||
('桂林', 2, (select id from area where name = '广西')),
|
||||
('玉林', 2, (select id from area where name = '广西')),
|
||||
('贵港', 2, (select id from area where name = '广西')),
|
||||
('钦州', 2, (select id from area where name = '广西')),
|
||||
('乌鲁木齐', 2, (select id from area where name = '新疆')),
|
||||
('南京', 2, (select id from area where name = '江苏')),
|
||||
('南通', 2, (select id from area where name = '江苏')),
|
||||
('宿迁', 2, (select id from area where name = '江苏')),
|
||||
('常州', 2, (select id from area where name = '江苏')),
|
||||
('徐州', 2, (select id from area where name = '江苏')),
|
||||
('扬州', 2, (select id from area where name = '江苏')),
|
||||
('无锡', 2, (select id from area where name = '江苏')),
|
||||
('泰州', 2, (select id from area where name = '江苏')),
|
||||
('淮安', 2, (select id from area where name = '江苏')),
|
||||
('盐城', 2, (select id from area where name = '江苏')),
|
||||
('苏州', 2, (select id from area where name = '江苏')),
|
||||
('连云港', 2, (select id from area where name = '江苏')),
|
||||
('镇江', 2, (select id from area where name = '江苏')),
|
||||
('上饶', 2, (select id from area where name = '江西')),
|
||||
('九江', 2, (select id from area where name = '江西')),
|
||||
('南昌', 2, (select id from area where name = '江西')),
|
||||
('吉安', 2, (select id from area where name = '江西')),
|
||||
('宜春', 2, (select id from area where name = '江西')),
|
||||
('抚州', 2, (select id from area where name = '江西')),
|
||||
('新余', 2, (select id from area where name = '江西')),
|
||||
('景德镇', 2, (select id from area where name = '江西')),
|
||||
('萍乡', 2, (select id from area where name = '江西')),
|
||||
('赣州', 2, (select id from area where name = '江西')),
|
||||
('鹰潭', 2, (select id from area where name = '江西')),
|
||||
('保定', 2, (select id from area where name = '河北')),
|
||||
('唐山', 2, (select id from area where name = '河北')),
|
||||
('廊坊', 2, (select id from area where name = '河北')),
|
||||
('张家口', 2, (select id from area where name = '河北')),
|
||||
('承德', 2, (select id from area where name = '河北')),
|
||||
('沧州', 2, (select id from area where name = '河北')),
|
||||
('石家庄', 2, (select id from area where name = '河北')),
|
||||
('秦皇岛', 2, (select id from area where name = '河北')),
|
||||
('衡水', 2, (select id from area where name = '河北')),
|
||||
('邢台', 2, (select id from area where name = '河北')),
|
||||
('邯郸', 2, (select id from area where name = '河北')),
|
||||
('信阳', 2, (select id from area where name = '河南')),
|
||||
('南阳', 2, (select id from area where name = '河南')),
|
||||
('周口', 2, (select id from area where name = '河南')),
|
||||
('商丘', 2, (select id from area where name = '河南')),
|
||||
('安阳', 2, (select id from area where name = '河南')),
|
||||
('开封', 2, (select id from area where name = '河南')),
|
||||
('新乡', 2, (select id from area where name = '河南')),
|
||||
('洛阳', 2, (select id from area where name = '河南')),
|
||||
('漯河', 2, (select id from area where name = '河南')),
|
||||
('焦作', 2, (select id from area where name = '河南')),
|
||||
('许昌', 2, (select id from area where name = '河南')),
|
||||
('郑州', 2, (select id from area where name = '河南')),
|
||||
('驻马店', 2, (select id from area where name = '河南')),
|
||||
('鹤壁', 2, (select id from area where name = '河南')),
|
||||
('丽水', 2, (select id from area where name = '浙江')),
|
||||
('台州', 2, (select id from area where name = '浙江')),
|
||||
('嘉兴', 2, (select id from area where name = '浙江')),
|
||||
('宁波', 2, (select id from area where name = '浙江')),
|
||||
('杭州', 2, (select id from area where name = '浙江')),
|
||||
('温州', 2, (select id from area where name = '浙江')),
|
||||
('湖州', 2, (select id from area where name = '浙江')),
|
||||
('绍兴', 2, (select id from area where name = '浙江')),
|
||||
('舟山', 2, (select id from area where name = '浙江')),
|
||||
('衢州', 2, (select id from area where name = '浙江')),
|
||||
('金华', 2, (select id from area where name = '浙江')),
|
||||
('三亚', 2, (select id from area where name = '海南')),
|
||||
('文昌', 2, (select id from area where name = '海南')),
|
||||
('海口', 2, (select id from area where name = '海南')),
|
||||
('咸宁', 2, (select id from area where name = '湖北')),
|
||||
('孝感', 2, (select id from area where name = '湖北')),
|
||||
('宜昌', 2, (select id from area where name = '湖北')),
|
||||
('武汉', 2, (select id from area where name = '湖北')),
|
||||
('荆州', 2, (select id from area where name = '湖北')),
|
||||
('荆门', 2, (select id from area where name = '湖北')),
|
||||
('襄阳', 2, (select id from area where name = '湖北')),
|
||||
('黄冈', 2, (select id from area where name = '湖北')),
|
||||
('黄石', 2, (select id from area where name = '湖北')),
|
||||
('岳阳', 2, (select id from area where name = '湖南')),
|
||||
('株洲', 2, (select id from area where name = '湖南')),
|
||||
('湘潭', 2, (select id from area where name = '湖南')),
|
||||
('衡阳', 2, (select id from area where name = '湖南')),
|
||||
('邵阳', 2, (select id from area where name = '湖南')),
|
||||
('郴州', 2, (select id from area where name = '湖南')),
|
||||
('长沙', 2, (select id from area where name = '湖南')),
|
||||
('兰州', 2, (select id from area where name = '甘肃')),
|
||||
('三明', 2, (select id from area where name = '福建')),
|
||||
('南平', 2, (select id from area where name = '福建')),
|
||||
('厦门', 2, (select id from area where name = '福建')),
|
||||
('宁德', 2, (select id from area where name = '福建')),
|
||||
('泉州', 2, (select id from area where name = '福建')),
|
||||
('福州', 2, (select id from area where name = '福建')),
|
||||
('莆田', 2, (select id from area where name = '福建')),
|
||||
('龙岩', 2, (select id from area where name = '福建')),
|
||||
('六盘水', 2, (select id from area where name = '贵州')),
|
||||
('贵阳', 2, (select id from area where name = '贵州')),
|
||||
('遵义', 2, (select id from area where name = '贵州')),
|
||||
('铜仁', 2, (select id from area where name = '贵州')),
|
||||
('黔东南苗族侗族自治州', 2, (select id from area where name = '贵州')),
|
||||
('大连', 2, (select id from area where name = '辽宁')),
|
||||
('抚顺', 2, (select id from area where name = '辽宁')),
|
||||
('朝阳', 2, (select id from area where name = '辽宁')),
|
||||
('沈阳', 2, (select id from area where name = '辽宁')),
|
||||
('盘锦', 2, (select id from area where name = '辽宁')),
|
||||
('营口', 2, (select id from area where name = '辽宁')),
|
||||
('葫芦岛', 2, (select id from area where name = '辽宁')),
|
||||
('铁岭', 2, (select id from area where name = '辽宁')),
|
||||
('鞍山', 2, (select id from area where name = '辽宁')),
|
||||
('重庆', 2, (select id from area where name = '重庆')),
|
||||
('咸阳', 2, (select id from area where name = '陕西')),
|
||||
('宝鸡', 2, (select id from area where name = '陕西')),
|
||||
('渭南', 2, (select id from area where name = '陕西')),
|
||||
('西安', 2, (select id from area where name = '陕西')),
|
||||
('铜川', 2, (select id from area where name = '陕西')),
|
||||
('七台河', 2, (select id from area where name = '黑龙江')),
|
||||
('伊春', 2, (select id from area where name = '黑龙江')),
|
||||
('佳木斯', 2, (select id from area where name = '黑龙江')),
|
||||
('双鸭山', 2, (select id from area where name = '黑龙江')),
|
||||
('哈尔滨', 2, (select id from area where name = '黑龙江')),
|
||||
('大庆', 2, (select id from area where name = '黑龙江')),
|
||||
('牡丹江', 2, (select id from area where name = '黑龙江')),
|
||||
('绥化', 2, (select id from area where name = '黑龙江')),
|
||||
('鸡西', 2, (select id from area where name = '黑龙江')),
|
||||
('鹤岗', 2, (select id from area where name = '黑龙江')),
|
||||
('黑河', 2, (select id from area where name = '黑龙江')),
|
||||
('齐齐哈尔', 2, (select id from area where name = '黑龙江'))
|
||||
6601
scripts/sql/fill-edge.sql
Normal file
6601
scripts/sql/fill-edge.sql
Normal file
File diff suppressed because it is too large
Load Diff
@@ -634,6 +634,31 @@ comment on column proxy.created_at is '创建时间';
|
||||
comment on column proxy.updated_at is '更新时间';
|
||||
comment on column proxy.deleted_at is '删除时间';
|
||||
|
||||
-- area
|
||||
drop table if exists area cascade;
|
||||
create table area (
|
||||
id int generated by default as identity primary key,
|
||||
name text not null,
|
||||
level int not null,
|
||||
parent_id int,
|
||||
created_at timestamptz default current_timestamp,
|
||||
updated_at timestamptz default current_timestamp,
|
||||
deleted_at timestamptz
|
||||
);
|
||||
create index idx_area_level on area (level) where deleted_at is null;
|
||||
create index idx_area_parent_id on area (parent_id) where deleted_at is null;
|
||||
create index idx_area_created_at on area (created_at) where deleted_at is null;
|
||||
|
||||
-- area表字段注释
|
||||
comment on table area is '地区表';
|
||||
comment on column area.id is '地区ID';
|
||||
comment on column area.name is '地区名称';
|
||||
comment on column area.level is '地区层级:1-省,2-市';
|
||||
comment on column area.parent_id is '父级地区ID';
|
||||
comment on column area.created_at is '创建时间';
|
||||
comment on column area.updated_at is '更新时间';
|
||||
comment on column area.deleted_at is '删除时间';
|
||||
|
||||
-- edge
|
||||
drop table if exists edge cascade;
|
||||
create table edge (
|
||||
@@ -644,8 +669,7 @@ create table edge (
|
||||
ip inet not null,
|
||||
port int,
|
||||
isp int not null,
|
||||
prov text not null,
|
||||
city text not null,
|
||||
area_id int not null,
|
||||
status int not null default 0,
|
||||
rtt int default 0,
|
||||
loss int default 0,
|
||||
@@ -655,8 +679,7 @@ create table edge (
|
||||
);
|
||||
create unique index udx_edge_mac on edge (mac) where deleted_at is null;
|
||||
create index idx_edge_isp on edge (isp) where deleted_at is null;
|
||||
create index idx_edge_prov on edge (prov) where deleted_at is null;
|
||||
create index idx_edge_city on edge (city) where deleted_at is null;
|
||||
create index idx_edge_area_id on edge (area_id) where deleted_at is null;
|
||||
create index idx_edge_created_at on edge (created_at) where deleted_at is null;
|
||||
|
||||
-- edge表字段注释
|
||||
@@ -668,8 +691,7 @@ comment on column edge.mac is '节点 mac 地址或 GOST chain 名称';
|
||||
comment on column edge.ip is '节点地址或 GOST chain addr 的 IP';
|
||||
comment on column edge.port is 'GOST chain addr 的端口';
|
||||
comment on column edge.isp is '运营商:1-电信,2-联通,3-移动';
|
||||
comment on column edge.prov is '省份';
|
||||
comment on column edge.city is '城市';
|
||||
comment on column edge.area_id is '城市地区ID';
|
||||
comment on column edge.status is '节点状态:0-离线,1-正常';
|
||||
comment on column edge.rtt is '最近平均延迟';
|
||||
comment on column edge.loss is '最近丢包率';
|
||||
@@ -1237,6 +1259,10 @@ alter table channel
|
||||
add constraint fk_channel_user_id foreign key (user_id) references "user" (id) on delete cascade;
|
||||
alter table channel
|
||||
add constraint fk_channel_proxy_id foreign key (proxy_id) references proxy (id) on delete set null;
|
||||
alter table area
|
||||
add constraint fk_area_parent_id foreign key (parent_id) references area (id) on delete set null;
|
||||
alter table edge
|
||||
add constraint fk_edge_area_id foreign key (area_id) references area (id) on delete restrict;
|
||||
alter table channel
|
||||
add constraint fk_channel_edge_id foreign key (edge_id) references edge (id) on delete set null;
|
||||
alter table channel
|
||||
|
||||
Reference in New Issue
Block a user