
养老院管理系统:SpringBoot框架+MySQL数据库+前端Vue,不分离架构设计
最近在折腾一个养老院管理系统的项目,用了SpringBoot+Vue前后端不分离的架构。这种老派的全
栈开发方式现在虽然不流行了,但对于需要快速迭代的中小型项目来说,把前后端揉在一起反而更省事。
今天就跟大伙唠唠这个项目中几个有意思的技术点。
咱们先看数据库设计。养老院最核心的床位管理表,我用了组合唯一约束来防止重复分配:
```sql
CREATE TABLE bed_allocation (
id INT PRIMARY KEY AUTO_INCREMENT,
elder_id INT NOT NULL,
room_number VARCHAR(20) NOT NULL,
bed_number VARCHAR(20) NOT NULL,
UNIQUE KEY uk_room_bed (room_number, bed_number),
FOREIGN KEY (elder_id) REFERENCES elders(id)
);
```
这个设计确保同一个房间的床位不会重复,同时通过外键关联老人信息。实际项目中遇到过字段冗
余的问题——比如在护理记录表里既存了老人ID又存了床位号,这时候就得用触发器来保持数据一致性。
服务端处理健康监测数据时,用到了SpringBoot的定时任务:
```java
@Scheduled(cron = "0 0 8 * * ?") // 每天上午8点执行
public void checkAbnormalData() {
LocalDate today = LocalDate.now();
List<HealthData> abnormals = healthMapper.selectAbnormalData(today);
abnormals.forEach(data -> {
String msg = String.format("%s老人%s指标异常:%s",
data.getElderName(), data.getIndicator(), data.getValue());
smsService.sendAlert(data.getGuardianPhone(), msg);
});
}