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.没有索引或者没有用到索引(查询慢最常见的问 ...
随机推荐
- Algorithm --> 并查集
并查集 主要解决图的连通性问题,比如: 1.随意给你两个点,让你判断它们是否连通: 2.问你整幅图一共有几个连通分支: 初始化: void init(int size) { ; i < size ...
- Redis一次数据丢失(转)
一台Redis服务器,4核,16G内存且没有任何硬件上的问题.持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数.而就是这台主机,在一次重起之后,丢失了大量的数据,14G的 ...
- 走进webpack(2)--第三方框架(类库)的引入及抽离
在当代的前端开发中,很少会用原生JS来开发页面,最基本的都会使用jQuery来节省我们开发的时间和效率,而angular,vue,react的出现更是为前端开发者带来了福音.那么这篇文章就说说如何用w ...
- 北京工业大学耿丹学院2016下C作业学习总结
北京工业大学耿丹学院2016下C的班级地址在https://edu.cnblogs.com/campus/bjgygd/Sixteen-One . 第一次作业:两部分 第一部分:新建博客,书写第一篇随 ...
- 高级软件工程第三次作业 赵坤&黄亦薇
0.小组成员 赵坤2017282110261 黄亦薇201728210260 1.项目Github地址 https://github.com/zkself/homework3 PS:建议使用chro ...
- js计时功能
//个位秒加 function time4jia() { //分钟60为上限 所有加停止 if (sz(a('time1').innerHTML) == 6) { return; } var m4 = ...
- vue.js下载及安装配置
环境 Deepin15.4 下载及配置 node下载地址:http://nodejs.cn/download/ 解压到文件夹 /home/maskerk/vue/ 下 设置软连接: $ ln -s / ...
- 201621123031 《Java程序设计》第9周学习总结
作业09-集合与泛型 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 一.泛型的基本概念 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Paramet ...
- Python split()方法
Python split()方法 描述 Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 语法 split()方法语法: str.sp ...
- pandas 使用
ss = [['xx','m',22],['cc','w',33],['jj','w',44],['qq','m',11]] import pandas as pd df = pd.DataFrame ...