MySQL数据库设计:用户表与账单表创建教程

需积分: 0 0 下载量 92 浏览量 更新于2024-08-03 收藏 5KB TXT 举报
本文档是关于数据库管理操作的SQL脚本,主要关注MySQL数据库的创建、表结构设计和外键关联。在`accounting.TXT`文件中,我们看到两个关键步骤: 1. **创建数据库与字符集设置**: 首先,创建了一个名为`mydb`的新数据库,并设置了默认字符集为`utf8mb4`和排序规则为`utf8mb4_general_ci`。这确保了数据库的兼容性和多字节字符的支持。 2. **用户表设计**: `user`表用于存储用户信息,包括: - `Uid`: 自增主键,表示用户序号; - `Username`: 用户名,不允许为空; - `Userpassword`: 密码,同样不能为空; - `Uname`: 姓名; - `Usex`: 性别枚举类型(male, female, other),默认为'other'; - `Ubirthday`: 用户的出生日期; - `Uphone`: 用户电话号码; - `Upermissions`: 权限字段,0表示普通用户,1表示管理员,初始值为0; - `Uicon`: 头像链接或路径。 3. **账单表设计**: `bill`表用来记录账单信息,包含: - `Bid`: 自增主键,表示账单序号; - `Cname`: 分类名称,可为NULL; - `Cincome`: 收支类型,同样可为NULL; - `Atable`: 账户,可能是与用户表关联的外键; - `Bamount`: 金额,用`DECIMAL(10,2)`数据类型表示; - `BtIme`: 时间戳,用于记录交易时间; - `Bremark`: 备注,允许为空; - `account_id` 和 `class_id`:外键,分别与`user`表和一个假设的`class`表关联。 4. **外键约束**: 在`bill`表中,`account_id`列被定义为外键,它引用了`user`表的`Uid`,表示每个账单都关联到一个用户。同样,`class_id`列可能是另一个表的外键,但文档中没有提供具体的表名。 这个脚本提供了基础的数据库结构设计,适用于跟踪用户信息和账单数据,适合于金融或个人财务管理应用。通过这个脚本,可以了解如何在MySQL中创建表,定义字段类型和关系,以及设置外键约束来维护数据完整性。