北海市网站建设_网站建设公司_版式布局_seo优化
2025/12/20 0:33:31 网站建设 项目流程


我们使用了华为云虚拟ecs,则需要先打开修改安全组配置规则
​​image
​​
添加入方向规则
image

然后正式开始,打开你的shell软件(或者华为云的cloudshell),登录创建链接
image

1.切换到omm用户,以操作系统用户omm登录数据库主节点。

su - omm

使用gsql工具登陆数据库。

gsql -d postgres -p 26000 -r

创建数据库lkun。

CREATE DATABASE lkun ENCODING 'UTF8' TEMPLATE template0;

连接finance数据库。

\connect lkun

创建名为lkun的schema,并设置lkun为当前的schema。

CREATE SCHEMA lkun;

将默认搜索路径设为lkun。

SET search_path TO lkun;

删除表client

DROP TABLE IF EXISTS client;

2.关闭前面的窗口,新建一个shell窗口,在GS_HOME中查找pg_hba.conf文件,华为云默认的在/gaussdb/data/db1里面

cd /gaussdb/data/db1

vim pg_hba.conf

在里面找到ipv4的地方,添加这行

host all all 0.0.0.0/0 md5
image

Esc之后:wq退出,之后进入omm保存

su - omm

gs_ctl reload -D /gaussdb/data/db1/
image

3.修改数据库监听地址。

在GS_HOME中,华为云数据库GS_HOME默认设置也在/gaussdb/data/db1,打开postgresql.conf

cd /gaussdb/data/db1

vim postgresql.conf

将listen_addresses的值修改成为*。

listen_addresses = '*'
image

接着,取消掉password_encryption_type的注释,修改:

password_encryption_type = 1

image

修改完成后esc,:wq退出,重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。

gs_ctl restart -D /gaussdb/data/db1/

4.使用omm用户登陆数据库给dbuser用户授权

su - omm

gsql -d postgres -p 26000 -r

创建用户,此处名字取lk,密码取cqq_lk123:

create user lk identified by 'cqq_lk123';

alter user lk sysadmin;
image

这样就完成了数据库的搭建,接着,我进行了六个表的创建:

  1. Users (用户表)
CREATE TABLE Users (user_id SERIAL PRIMARY KEY,username VARCHAR(100) NOT NULL UNIQUE,password_hash VARCHAR(255) NOT NULL,email VARCHAR(255) UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,role VARCHAR(20) DEFAULT 'user'::character varying
);

创建结果:
image

2.城市表 (Cities)

CREATE TABLE Cities (city_id SERIAL PRIMARY KEY,city_name VARCHAR(100) NOT NULL,province VARCHAR(100)
);

结果:
![image](https://img2024.cnblogs.com/blog/3714523/202512/3714523-20251220002439866-1199531698.pn

3.景点表 (Attractions)

CREATE TABLE Attractions (attraction_id SERIAL PRIMARY KEY,name VARCHAR(255) NOT NULL,description TEXT,address VARCHAR(255),ticket_price DECIMAL(10, 2),city_id INTEGER REFERENCES Cities(city_id) ON DELETE SET NULL,user_id INTEGER REFERENCES Users(user_id) ON DELETE SET NULL,open_time TIME WITHOUT TIME ZONE,close_time TIME WITHOUT TIME ZONE,rating NUMERIC(2, 1) DEFAULT 5.0,category VARCHAR(50) CHECK (category IN ('自然风光', '历史古迹', '文化艺术', '主题乐园', '城市地标', '其他')),image_urls TEXT[],longitude DECIMAL(9, 6),latitude DECIMAL(9, 6)
);

结果:
image

4.评论表 (Reviews)

CREATE TABLE Reviews (review_id SERIAL PRIMARY KEY,rating SMALLINT CHECK (rating >= 1 AND rating <= 5),comment_text TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,user_id INTEGER REFERENCES Users(user_id) ON DELETE CASCADE,attraction_id INTEGER REFERENCES Attractions(attraction_id) ON DELETE CASCADE,image_urls TEXT[]
);

结果:
image

5.行程表 (Itineraries)

CREATE TABLE Itineraries (itinerary_id SERIAL PRIMARY KEY,title VARCHAR(255) NOT NULL,start_date DATE,end_date DATE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,user_id INTEGER REFERENCES Users(user_id) ON DELETE CASCADE
);

结果:
image

6.行程景点关联表 (Itinerary_Attractions)

CREATE TABLE Itinerary_Attractions (itinerary_id INTEGER REFERENCES Itineraries(itinerary_id) ON DELETE CASCADE,attraction_id INTEGER REFERENCES Attractions(attraction_id) ON DELETE CASCADE,visit_day INTEGER,visit_time TIME WITHOUT TIME ZONE,notes TEXT,PRIMARY KEY (itinerary_id, attraction_id)
);

结果:
image

至此,完成了数据库的搭建以及表的建立

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询