SQL数据库设计:构建ATM银行系统用户和卡片信息表

需积分: 9 1 下载量 53 浏览量 更新于2024-09-08 收藏 2KB TXT 举报
该资源是一个关于ATM银行系统的SQL数据库设计示例,包含了用户信息表(user_info)、卡片信息表(card_info)和交易信息表(trans_info)的创建语句,以及一些基本的数据插入。 在SQL数据库设计中,这三个表是构建一个简单银行系统的核心组成部分。以下是每个表的详细说明: 1. 用户信息表(user_info): - `u_id`: 用户ID,作为主键,是自增的大整数类型,确保每行记录的唯一性。 - `u_name`: 用户姓名,非空字符串,用于标识用户。 - `u_pid`: 用户身份证号,具有唯一性约束,确保每个用户有唯一的身份证号码。 - `u_tel`: 用户电话号码,非空字符串,用于联系用户。 - `u_address`: 用户地址,可为空,存储用户的居住地址。 - 表引擎使用InnoDB,支持事务处理和行级锁定,适合并发操作。 2. 卡片信息表(card_info): - `c_id`: 卡号,作为主键,是特殊的字符类型,满足特定格式的正则表达式约束。 - `c_type`: 卡种,具有检查约束,确保值为预定义的选项。 - `c_openmoney`: 开户金额,非负数值,表示卡片开户时的初始余额。 - `c_pwd`: 密码,默认为'888888',符合特定长度的字母数字正则表达式约束,保证密码安全。 - `c_loss`: 卡片丢失状态,默认为空,可能用于记录卡片丢失或找回的信息。 - `c_currency`: 货币类型,默认为'RMB',表示卡片使用的货币单位。 - `c_opentime`: 开卡时间,非空的时间戳,记录卡片的开卡日期。 - `c_balance`: 余额,非负数值,表示当前卡片的余额。 - `u_id`: 用户ID,外键关联到user_info表,确保每张卡对应一个用户。 3. 交易信息表(trans_info): - `tr_date`: 交易日期,非空的时间戳,记录交易发生的时间,默认为当前时间。 - `c_id`: 卡号,外键关联到card_info表,标识进行交易的卡片。 - `tr_type`: 交易类型,如存款、取款等,具有检查约束,确保交易类型的有效性。 - `tr_money`: 交易金额,非负浮点数,记录交易涉及的金额。 - `tr_remark`: 交易备注,可选字符串,用于记录交易的额外信息。 通过这个简单的SQL项目,我们可以理解一个银行系统如何利用关系型数据库来组织和管理用户、卡片和交易数据。这些表的结构设计考虑了数据的一致性和完整性,同时也为日常银行业务提供了基础框架。然而,实际的银行系统会包含更多复杂的表和业务逻辑,例如账户状态、利率计算、安全验证等。