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类型,需要什么数据传什么值就可以了。

投诉建议表(待添加)

相关文章
|
12天前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
55 10
|
16天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
14天前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
17天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
35 4
|
18天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
37 4
|
20天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
49 4
|
25天前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
26天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
48 2
|
26天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
25 1
|
26天前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
19 1
下一篇
无影云桌面