前言
从项目背景、项目职责、关键技术、项目产出等多个维度系统介绍基于数据库的“家庭财务管理系统”WEB开发项目
项目背景
本项目是针对家庭收支不平衡的群体,通过 JS 编程语言与数据库技术结合,开发出的一套由登陆管理、家庭成员管理、家庭的收支账目管理和家庭成员的收支报告管理组成的,帮助家庭完成记账工作,并给予用户家庭成员的收支报告的家庭财务管理系统
项目职责
担任项目负责人,督促小组成员推进项目进度
需求分析,基于业务需求,积极推动项目进展,及时完成业务需求;
数据库 E-R 图设计,部分后端代码编写, 整合代码,通路测试,功能点验收。
关键技术
PHP JavaScript Bootstrap CSS MySQL SQL
项目产出
数据库设计与E-R图
根据家庭财务管理系统的功能模块需求分析,设计如下一些数据项和数据结构,从而构建数据库各表。
(1) 用户信息:用户账号、用户名、用户密码。
(2) 家庭成员信息:成员姓名、成员性别、成员年龄、成员家庭职务。
(3) 家庭收入:收入类型、收入金额、收入时间。
(4) 家庭支出:支出类型、收入金额、收入时间。
数据库E-R图如下图所示:
系统功能模块
系统功能如下图所示:
系统实现
注册界面
登录界面
主界面
添加家庭成员界面
添加收支记录界面
修改用户名密码界面
收支报表界面
关键代码
连接数据库
<?php
function create_connection()
{
$link = mysqli_connect("localhost", "root", "123456")//连接数据库
or die("无法连接数据库: " . mysqli_connect_error());`
mysqli_query($link, "SET NAMES utf8");
return $link;
}
function execute_sql($link, $database, $sql)
{
mysqli_select_db($link, $database)
or die("打开数据库失败 " . mysqli_error($link));
$result = mysqli_query($link, $sql); //利用SQL语句获取数据库中结果`
return $result;
}
?>
生成财务报表
//建立数据连接
$link = create_connection();
//执行Select语句获取数据库数据
$sql = "SELECT * FROM family_out where family_out.user_id='$userid'";//SQL语句进行查找
$result = execute_sql($link, "family_economic", $sql);
while ($row = mysqli_fetch_object($result))
{
echo "<tbody>";
echo "<tr>";
echo "<td> </td>";//将家庭的支出项输出出来
echo "<td align='center'>$row->who</td>";
echo "<td align='center'>$row->owhere</td>";
echo "<td align='center'>$row->num</td>";
echo "</tr>";
echo "</tbody>";
}
可优化之处
由于实现该项目的时候js不是很熟练,所以项目中html、php、Js文件混杂。
实际上,PHP是完全可以嵌套在html文件和Js文件中的
甚至,完全可以用Js实现输入输出判断,php有些多余。
而且,由于存在php页面,所以在运行的时候,需要开启服务器。本项目采用的是phpstudy集成环境。
之后的优化,可以考虑完全采用Js落地。