酒店管理系统房间预定问题
酒店管理系统房间预定问题
酒店管理系统房间预定问题
Gemini: https://gemini.google.com/share/f5c5f79c9d34
Gemini Deep research: https://gemini.google.com/share/2881e5f26082
EditorConfig 是为了解决不同的操作系统,编辑器之间差异的。如 换行符,tab 字符的长度。对任何文本格式的文件生效。如 .md,Makefile,.yaml,.sh

在不运行代码的前提下,解析代码(AST 静态分析), 发现语法逻辑问题(未定义变量,类型错误等)。
JSLint,不可配置 JSHint, 可配置,不支持第三方插件 ESLint, 一切皆可插拔
ESLint 要求每一个规则都是原子性的。
Prettier 是为了解决代码格式化问题的。
解决 eslint 与 prettier 职责交叉的问题。
Rust 开发,性能更好。比 ESLint 快 50~100 倍。
git log --grep="feat" --grep="接口" -i --oneline --all-match
--grep="feat" --grep="接口" 表示过滤出 git commit message 包含 feat 或 接口 的提交记录(OR 的逻辑). 如果加上 --all-match 表示要包含 feat 和 接口。(AND 的逻辑)-i 忽略大小写注释: %%
TD 表示 "top-down"
LR 表示 "left-right"
[矩形](圆角矩形){菱形} 用于判断条件((圆))--> 带箭头的实线--- 实线==> 加粗-.-> 带箭头的虚线|文字|,在线上添加文字, 或 --text--><--> 双向箭头participant 名字 参与者actor 名字 将参与者显示为小人图标A->>B: 文字 实现箭头 请求B-->>A: 文字 虚线剪头 响应activate A 激活 deactivate A 取消激活 表示一个参与者处于“处理中”的状态->>+ 激活 -->>- 取消激活Note right of A: 文字 在 A 的右侧添加注释flowchart TD
Start((开始)) --> GetQR[PC端请求登录]
GetQR --> ShowQR[展示二维码]
subgraph Mobile [手机端操作]
Scan[用户打开App扫码] --> Auth{是否授权?}
Auth -->|是| AppConfirm[点击确认登录]
Auth -->|否| AppCancel[点击取消]
end
ShowQR -- 轮询/Scoket --> CheckState{检查二维码状态}
Scan -.-> CheckState
AppConfirm -.-> CheckState
CheckState -->|wait| ShowQR
CheckState -->|scan| Prompt[请在手机端确认]
Prompt --> CheckState
CheckState -->|过期| Expired[二维码失效]
Expired --> Refresh[点击刷新] --> GetQR
CheckState -->|登录成功| Success[获取 token/跳转首页]
Success --> End((结束))
subgraph ... end 表示把这一块逻辑框在一起,在视觉上把他们看成一个整体。
sequenceDiagram
autonumber
participant PC as 浏览器
participant Server as 服务器
participant Phone as 手机APP
Note over PC,Server: 阶段一:初始化二维码
PC->>Server: 1. 请求生成二维码(GET /qrcode)
Server-->>PC: 2. 返回二维码ID(UUID)
Note over PC,Server: 阶段二:轮询检测状态
loop 每隔2秒查询一次
PC->>Server: 3. 询问 UUID状态(GET /check?uuid=xyz)
alt 状态: 已扫码(WAITING)
Server-->>PC: keep waiting
else 状态: 已扫码(SACNNED)
Phone->>Server: 4. 扫码请求(POST /scan)
Server-->>PC: scanned(PC显示用户头像)
else 状态:已确认(CONFIRMED)
Phone->>Server: 5. 登录确认(POST /confirm)
Server-->>PC: token(登录凭证)
end
end
Note over PC: 阶段三: 登录完成
PC->>PC: 写入token并跳转首页
if -else if - else使用 with 创建临时结果集(Common Table Expression - CTE)。
WITH sales_summary AS (
SELECT
product_id,
SUM(amount) as total_sales
FROM orders
WHERE order_date >= '2026-01-01'
GROUP BY product_id
)
SELECT
p.product_name,
s.total_sales
FROM products p
JOIN sales_summary s ON p.id = s.product_id;
WITH
regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
),
top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT
region,
product,
SUM(quantity) AS product_units
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;
WITH RECURSIVE factorial AS (
SELECT 1 AS n, 1 AS fact
UNION ALL
SELECT n + 1, (n + 1) * fact
FROM factorial
WHERE n < 1
)
SELECT * FROM factorial;
WITH RECURSIVE number_seq (num, squared) AS (
-- Anchor: 初始值
SELECT 1, 1
UNION ALL
-- Recursive: num < 5 是终止条件
SELECT num + 1, (num + 1) * (num + 1)
FROM number_seq
WHERE num < 2
)
SELECT * FROM number_seq;
group by x1,x2 ...
将除了 x1,x2 以外的字段通过聚合函数 “压缩” 成一行。
select department,avg(salary) from employees group by department;
窗口函数() over (partition by 分组列 order by 排序列)
根据分组列进行分组,然后对每个组通过排序列进行排序,最后通过窗口函数计算每列的值。
select name,department,avg(salary) over (partition by department) as '平均工资',salary - avg(salary) over (partition by department) as '和平均差距' from employees;