Bank方案SQL
用于演示的Bank方案对应的SQL:
/*
1、branch
开展银行交易业务的场所
*/
DROP TABLE IF EXISTS branch;
CREATE TABLE branch -- 开展银行交易业务的场所
(
branch_id SMALLINT UNSIGNED PRIMARY KEY,
name varchar(20),
address varchar(20),
city varchar(20),
state varchar(2),
zip varchar(12)
);
/*
1、product_type
具有相似功能的产品的分组
*/
DROP TABLE IF EXISTS product_type;
CREATE TABLE product_type
(
product_type_cd varchar(10) PRIMARY KEY,
name varchar(50)
);
/*
3、department
执行特定职能的雇员分组
*/
DROP TABLE IF EXISTS department;
CREATE TABLE department
(
dept_id SMALLINT UNSIGNED PRIMARY KEY,
name VARCHAR(20)
);
/*
4、customer
与银行有业务往来的个人或公司
*/
DROP TABLE IF EXISTS customer;
CREATE TABLE customer
(
cust_id INTEGER UNSIGNED PRIMARY KEY,
fed_id VARCHAR(12),
cust_type_cd VARCHAR(2),
address VARCHAR(30),
city VARCHAR(20),
state VARCHAR(20),
postal_code VARCHAR(10)
);
/*
5、product
向客户提供的银行服务
*/
DROP TABLE IF EXISTS product;
CREATE TABLE product
(
product_cd VARCHAR(10) PRIMARY KEY,
name VARCHAR(50),
product_type_cd VARCHAR(10),
date_offered date,
date_retired date,
CONSTRAINT fk_product_type_cd FOREIGN KEY (product_type_cd) REFERENCES product_type (product_type_cd)
);
/*
6、employee
银行的工作人员
*/
DROP TABLE IF EXISTS employee;
CREATE TABLE employee
(
emp_id SMALLINT UNSIGNED PRIMARY KEY,
fname VARCHAR(20),
lname VARCHAR(20),
start_date DATE,
end_date DATE,
superior_emp_id SMALLINT UNSIGNED, -- FK: 关联到 自己的 emp_id
dept_id SMALLINT UNSIGNED, -- FK: 关联到 department表的 dept_id
title VARCHAR(20),
assigned_branch_id SMALLINT UNSIGNED, -- FK: 关联到 branch表的 branch_id
CONSTRAINT fk_superior_emp_id FOREIGN KEY (superior_emp_id) REFERENCES employee (emp_id),
CONSTRAINT fk_dept_id FOREIGN KEY (dept_id) REFERENCES department (dept_id),
CONSTRAINT fk_assigned_branch_id FOREIGN KEY (assigned_branch_id) REFERENCES branch (branch_id)
);
/*
7、account
为特定顾客开放的特定产品
*/
DROP TABLE IF EXISTS account;
CREATE TABLE account
(
account_id INTEGER UNSIGNED PRIMARY KEY,
product_cd VARCHAR(10), -- FK: 关联到 product表的 product_cd
cust_id INTEGER UNSIGNED, -- FK: 关联到 customer表的 cust_id
open_date DATE,
close_date DATE,
last_activity_date DATE,
status VARCHAR(10),
open_branch_id SMALLINT UNSIGNED, -- FK: 关联到 branch表的 branch_id
open_emp_id SMALLINT UNSIGNED, -- FK: 关联到 employee表的 emp_id
avail_balance FLOAT(10,2),
pending_balance FLOAT(10,2),
CONSTRAINT fk_product_cd FOREIGN KEY (product_cd) REFERENCES product (product_cd),
CONSTRAINT fk_cust_id FOREIGN KEY (cust_id) REFERENCES customer (cust_id),
CONSTRAINT fk_open_branch_id FOREIGN KEY (open_branch_id) REFERENCES branch (branch_id),
CONSTRAINT fk_open_emp_id FOREIGN KEY (open_emp_id) REFERENCES employee (emp_id)
);
/*
8、transaction
改变账户余额的操作
*/
DROP TABLE IF EXISTS transaction;
CREATE TABLE transaction
(
txn_id INTEGER UNSIGNED PRIMARY KEY,
txn_date DATETIME,
account_id INTEGER UNSIGNED, -- FK: 关联 account表的 account_id
txn_type_cd VARCHAR(10),
amount DOUBLE(10,2),
teller_emp_id SMALLINT UNSIGNED, -- FK: 关联 employee表的 emp_id
execution_branch_id SMALLINT UNSIGNED, -- FK: 关联 branch表的 branch_id
funds_avail_date DATETIME,
CONSTRAINT fk_account_id FOREIGN KEY (account_id) REFERENCES account (account_id),
CONSTRAINT fk_teller_emp_id FOREIGN KEY (teller_emp_id) REFERENCES employee (emp_id),
CONSTRAINT fk_execution_branch_id FOREIGN KEY (execution_branch_id) REFERENCES branch (branch_id)
);
/*
9、business
公司顾客(customer的子表)
*/
DROP TABLE IF EXISTS business;
CREATE TABLE business
(
cust_id INTEGER UNSIGNED PRIMARY KEY, -- FK: 关联 customer表的 cust_id
name VARCHAR(40),
state_id VARCHAR(10),
incorp_date DATE,
CONSTRAINT fk_business_cust_id FOREIGN KEY (cust_id) REFERENCES customer (cust_id)
);
/*
10、officer
允许为公司客户发起商务交易的人
*/
DROP TABLE IF EXISTS officer;
CREATE TABLE officer
(
officer_id SMALLINT UNSIGNED PRIMARY KEY,
cust_id INTEGER UNSIGNED, -- FK
fname VARCHAR(30),
lname VARCHAR(30),
title VARCHAR(20),
start_date DATE,
end_date DATE,
CONSTRAINT fk_officer_cust_id FOREIGN KEY (cust_id) REFERENCES business (cust_id)
);
/*
11、individual
个人顾客(customer表的子类型)
*/
DROP TABLE IF EXISTS individual;
CREATE TABLE individual
(
cust_id INTEGER UNSIGNED PRIMARY KEY, -- FK
fname VARCHAR(30),
lname VARCHAR(30),
birth_date DATE,
CONSTRAINT fk_individual_cust_id FOREIGN KEY (cust_id) REFERENCES customer (cust_id)
);
Bank方案SQL的更多相关文章
- 大数据量数据库设计与优化方案(SQL优化)
转自:http://blog.sina.com.cn/s/blog_6c0541d50102wxen.html 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的 ...
- (4.24)【mysql、sql server】分布式全局唯一ID生成方案
参考:分布式全局唯一ID生成方案:https://blog.csdn.net/linzhiqiang0316/article/details/80425437 分表生成唯一ID方案 sql serve ...
- SQL事务
一.事务概念 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是一个不可分割的工作逻辑单元.在数据库系统上执行并发操作时事务是作为最小的 ...
- SQL Server AlwaysOn中的几个误区
原文:SQL Server AlwaysOn中的几个误区 AlwaysOn自SQL Server2012之后已经发布很久了,最近我在给一些客户做咨询的时候经常被问起是不是应该使用AlwaysOn,从客 ...
- SQL Server 文章目录
SQL Server系列: 高可用方案 SQL Server Alwayson概念总结 SQL Server AlwaysOn搭建 SQL Server2016 Alwayson新增功能 SQL Se ...
- Atitit.数据操作dsl 的设计 ---linq 方案
Atitit.数据操作dsl 的设计 ---linq 方案 1.1. sql与api方式1 1.2. Linq方案与stream方案的选择,1 1.3. 前缀表达式 vs 中缀表达式1 1.4. 要不 ...
- sql 动态行转列 (2005及以上版本)
表数据: sql: --pivot方案 sql 2005及以上版本 ) Set @sql=(Select DISTINCT ','+ N'[' +pref_name+N']' FROM dbo.Pop ...
- 新三种求数列中值SQL之效率再比拼
在 https://www.cnblogs.com/xiandedanteng/p/12677688.html 中我列举了三种求中值方案,其中日本人MICK的做法因为不适用于二百万结果集而放弃,取而 ...
- sql查询速度慢分析及如何优化查询
原因分析后台数据库中数据过多,未做数据优化数据请求-解析-展示处理不当 网络问题提高数据库查询的速度方案SQL 查询速度慢的原因有很多,常见的有以下几种:1.没有索引或者没有用到索引(查询慢最常见的问 ...
随机推荐
- Spring Boot 1.4测试的改进
对Pivotal团队来说,工作上的好事情是他们拥有一个被叫做Pivotal Labs的灵活发展部门,拥有Labs团队的Lean 和 XP程序设计方法学的强大支持,例如结对编程和测试驱动开发.他们对于测 ...
- 【Python】excel读写操作 xlrd & xlwt
xlrd ■ xlrd xlrd模块用于读取excel文件内容 基本用法: workbook = xlrd.open_workbook('文件路径') workbook.sheet_names() # ...
- canvas星空和图形变换
图形变换. 一.画一片星空 先画一片canvas.width宽canvas.height高的黑色星空,再画200个随机位置,随机大小,随机旋转角度的星星. window.onload=function ...
- JDK中的Timer和TimerTask详解
http://www.cnblogs.com/lingiu/p/3782813.html
- beta冲刺7
前言:最后一篇惹.明天就是正式交差了.有点慌-- 昨天的未完成: 用户试用+测评 输入部分的正则式判定 今天的工作: 登陆界面修改 我的社团显示效果优化 部分信息注册后锁定无法修改 其他部分功能优化 ...
- 使用Flask-SQLAlchemy管理数据库
SQLAlchemy 是一个很强大的关系型数据库框架,处于数据库抽象层 ,支持多种数据库后台. 提供了高层 ORM,也提供了使用数据库原生 SQL 的低层功能. 安装Flask-SQLAlchemy ...
- 201621123050 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答 ...
- 《高级软件测试》web测试实践--12月30日记录
考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...
- 【详细】Lucene使用案例
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引 ...
- Java面试题合集(二)
接下来几篇文章准备系统整理一下有关Java的面试题,分为基础篇,javaweb篇,框架篇,数据库篇,多线程篇,并发篇,算法篇等等,陆续更新中.其他方面如前端后端等等的面试题也在整理中,都会有的. 注: ...