Java开发物业管理系统:数据库表单设计

简介: 按照功能分为:用户表费用表投诉建议表第一步创建数据库:CREATE DATABASE yellowstar;用户表创建用户表表名:yw_usersCREATE TABLE IF NOT EXISTS yw_users ( uid INT UNSIGNED NOT NU...

按照功能分为:

  • 用户表
  • 费用表
  • 投诉建议表

第一步创建数据库:

CREATE DATABASE yellowstar;

用户表

创建用户表

表名:yw_users

CREATE TABLE IF NOT EXISTS yw_users (
    uid INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT 'UID',
    username VARCHAR(20) NOT NULL UNIQUE comment '用户名',
    password CHAR(32) NOT NULL COMMENT '密码:md5加密',
    user_type TINYINT UNSIGNED NOT NULL COMMENT '用户类型',
    create_time DATE NOT NULL COMMENT '创建时间'
);

type字段说明:

  • 1:超级管理员
  • 2:物业
  • 3:业主

插入测试数据

INSERT INTO yw_users
(username,password,user_type,create_time)
VALUES
('user1',123456,1,20181101),
('user2',123456,2,20181201),
('user3',123456,3,20181230);

业主房产信息表

房产信息表

表名:yw_houses

CREATE TABLE IF NOT EXISTS yw_houses (
    hid INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '房产号',
    username VARCHAR(20) NOT NULL comment '房产持有人',
    house_type VARCHAR(20) NOT NULL comment '房产类型',
    area DOUBLE UNSIGNED NOT NULL COMMENT '住房面积',
    buy_date DATE NOT NULL COMMENT '购房时间',
    building_no VARCHAR(20) NOT NULL comment '楼号',
    unit VARCHAR(10) NOT NULL comment '小区单元',
    card_id INT UNSIGNED NOT NULL COMMENT '门牌号',
    phone VARCHAR(11) NOT NULL comment '手机号码',
);

插入测试数据

INSERT INTO yw_houses
(username,house_type,area,buy_date,building_no,unit,card_id,phone)
VALUES
('张三','三室一厅',100,'2019-01-01','1号楼','一单元',902,'158****9177'),
('李四','三室二厅二卫',130,'2017-01-01','8号楼','二单元',102,'152****9127'),
('冠希','一室一厅',50,'2018-01-01','9号楼','一单元',401,'151****9147');

费用表

费用单价表

表名:yw_perprice

CREATE TABLE IF NOT EXISTS yw_perprice (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '单价编号',
    p_type INT UNSIGNED NOT NULL comment '单价类型',
    price DECIMAL(18,2) UNSIGNED NOT NULL comment '单价',
    p_date DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '定价时间'
);

p_type说明:

  • 1:水费
  • 2:电费
  • 3:燃气费
  • 4:停车费
  • 5:物业费

插入测试数据

INSERT INTO yw_perprice
(p_type,price)
VALUES
(1,3.45),
(2,0.5),
(3,1.64),
(4,5),
(5,50);

水费、电费、燃气费、物业费表

表名:yw_totalprice

CREATE TABLE IF NOT EXISTS yw_totalprice (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '编号',
    hid INT UNSIGNED NOT NULL  COMMENT '外键房产id',
    p_type  INT UNSIGNED NOT NULL comment '单价类型',
    price DECIMAL(18,2) UNSIGNED NOT NULL comment '单价',
    amount DECIMAL(18,2) UNSIGNED NOT NULL comment '用量',
    money DECIMAL(18,2) UNSIGNED NOT NULL comment '总额',
    buy_date DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '消费时间',
    FOREIGN KEY(hid) REFERENCES yw_houses(hid)
);

注意:这里使用了外键

插入测试数据

INSERT INTO yw_totalprice
(hid,p_type,amount,price,money)
VALUES
(1,1,30,(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1),30*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,1,21,(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1),21*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,2,40,(SELECT price FROM yw_perprice WHERE p_type=2 LIMIT 1),40*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,2,34,(SELECT price FROM yw_perprice WHERE p_type=2 LIMIT 1),34*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,3,23,(SELECT price FROM yw_perprice WHERE p_type=3 LIMIT 1),23*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,4,22,(SELECT price FROM yw_perprice WHERE p_type=4 LIMIT 1),22*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,4,12,(SELECT price FROM yw_perprice WHERE p_type=4 LIMIT 1),12*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,5,12,(SELECT price FROM yw_perprice WHERE p_type=5 LIMIT 1),12*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(1,5,12,(SELECT price FROM yw_perprice WHERE p_type=5 LIMIT 1),12*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,1,23,(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1),23*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,1,56,(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1),56*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,2,16,(SELECT price FROM yw_perprice WHERE p_type=2 LIMIT 1),16*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,3,15,(SELECT price FROM yw_perprice WHERE p_type=3 LIMIT 1),15*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,3,90,(SELECT price FROM yw_perprice WHERE p_type=3 LIMIT 1),90*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,4,44,(SELECT price FROM yw_perprice WHERE p_type=4 LIMIT 1),44*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1)),
(2,4,46,(SELECT price FROM yw_perprice WHERE p_type=4 LIMIT 1),46*(SELECT price FROM yw_perprice WHERE p_type=1 LIMIT 1))
;

注意:这里插入数据使用了子查询

查询讲解:
查询所有业主电费:

SELECT hid as '业主物业ID',price as '单价',amount as '用量',money as '金额',buy_date as '时间'
FROM yw_totalprice
WHERE p_type = 1;

查询所有业主电费

查询所有业主电费(增加显示业主姓名):

SELECT username as '业主物业姓名',price as '单价',amount as '用量',money as '金额',a.buy_date as '时间'
FROM yw_totalprice AS A JOIN yw_houses AS b
ON a.hid = b.hid 
WHERE p_type = 1;

查询所有业主电费(增加显示业主姓名)
知识点:这里使用了表连接

查询某业主的电费:
在where里增加一个限定条件就可以了

SELECT username as '业主物业姓名',price as '单价',amount as '用量',money as '金额',a.buy_date as '时间'
FROM yw_totalprice AS A JOIN yw_houses AS b
ON a.hid = b.hid 
WHERE p_type = 1 AND a.hid = 1;

查询某业主的电费

其他费用类推,基本就是改改p_type类型,需要什么数据传什么值就可以了。

投诉建议表(待添加)

相关文章
|
9月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
10月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
10月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
10月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
375 0
|
Java 开发工具 git
Java开发初级6.24.3
5.在Git使用过程中,进行Git配置的操作命令是哪个() A. config B. config -g C. config -a D. git config 相关知识点: 在git中,经常使用git config 命令用来配置git的配置文件,git配置级别主要有:仓库级别 local 【优先级最高】、用户级别 global【优先级次之】、系统级别 system【优先级最低】 正确答案:D 10.RDBMS是什么? A. Rela Database Management Systems B. Relational Database Management Systems C. Relation
299 0
|
SQL 前端开发 JavaScript
Java开发初级6.24.2
3.Java网站src/main/java目录保存的是什么资源? A. Java源代码文件 B. 测试代码 C. JavaScript、CSS等文件 D. 图片资源 正确答案:A 4.什么是索引Index? A. SQL数据库里的表管理工具 B. SQL数据库里的查询工具 C. SQL数据库里的目录工具 D. SQL数据库用来加速数据查询的特殊的数据结构 正确答案:D
359 0
|
Java
Java开发初级6.24.1
1.下面关于泛型的描述中错误的一项是? A. “? extends 类”表示设置泛型上限 B. “? super 类”表示设置泛型下限 C. 利用“?”通配符可以接收全部的泛型类型实例,但却不可修改泛型属性内容 D. 如果类在定义时使用了泛型,则在实例化类对象时需要设置相应的泛型类型,否则程序将无法编译通过 相关知识点: https://edu.aliyun.com/course/35 正确答案:D 2.下列选项中属于SVN中控制鉴权用户访问版本库的权限默认权限的是() A. write B. read C. none D. null 相关知识点: auth-access:取值范围为"writ
405 0
|
Java 开发工具 git
Java开发初级6.23.3
5.在Git使用过程中,进行Git配置的操作命令是哪个() A. config B. config -g C. config -a D. git config 相关知识点: 在git中,经常使用git config 命令用来配置git的配置文件,git配置级别主要有:仓库级别 local 【优先级最高】、用户级别 global【优先级次之】、系统级别 system【优先级最低】 正确答案:D 10.RDBMS是什么? A. Rela Database Management Systems B. Relational Database Management Systems C. Relation
242 0
|
SQL 前端开发 JavaScript
Java开发初级6.23.2
3.Java网站src/main/java目录保存的是什么资源? A. Java源代码文件 B. 测试代码 C. JavaScript、CSS等文件 D. 图片资源 正确答案:A 4.什么是索引Index? A. SQL数据库里的表管理工具 B. SQL数据库里的查询工具 C. SQL数据库里的目录工具 D. SQL数据库用来加速数据查询的特殊的数据结构 正确答案:D
415 0