用mysql 写一个个人财务管理系统
时间: 2024-05-05 18:21:21 浏览: 91
好的,一个简单的个人财务管理系统可以包含以下基本功能:
1. 用户登录/注册:用户可以创建账户并登录到系统中。
2. 收支管理:用户可以记录每天的收入和支出,包括日期、金额、分类等信息。该信息应该被保存在数据库中,以便用户查看和管理。
3. 统计报表:用户可以查看各类收支的统计数据,比如每月的收入和支出总额、不同分类的收入和支出比例等。
下面是这个系统的数据库设计:
1. 用户表:用于保存用户的基本信息,包括用户ID、用户名、密码等。
```
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
2. 收支记录表:用于保存每天的收入和支出记录,包括日期、金额、分类等信息。
```
CREATE TABLE `transactions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`type` varchar(255) NOT NULL,
`amount` decimal(10,2) NOT NULL,
`date` date NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `transactions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
3. 分类表:用于保存所有的收入和支出分类信息。
```
CREATE TABLE `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
4. 用户分类关联表:用于保存每个用户与其所拥有的分类之间的关系。
```
CREATE TABLE `user_categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `category_id` (`category_id`),
CONSTRAINT `user_categories_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
CONSTRAINT `user_categories_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
以上是一个简单的个人财务管理系统的数据库设计,你可以根据需要进行调整和扩展。
阅读全文