-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdataModeling.sql
More file actions
100 lines (87 loc) · 3.08 KB
/
dataModeling.sql
File metadata and controls
100 lines (87 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
DROP TABLE code;
DROP TABLE Gathering;
DROP TABLE Member;
DROP TABLE Dues;
DROP TABLE Transaction;
DROP TABLE Account;
/**********************************/
/* Table Name: Account */
/**********************************/
CREATE TABLE Account(
account_no VARCHAR(14) NOT NULL,
holder VARCHAR(20) NOT NULL,
balance NUMERIC(12) NOT NULL,
type CHAR(3) NOT NULL,
safe_account_no VARCHAR(15) NOT NULL,
status CHAR(3) NOT DEFAULT '201'
);
/**********************************/
/* Table Name: Transaction */
/**********************************/
CREATE TABLE Transaction(
transaction_no NUMERIC(10) NOT NULL,
reg_date DATE NOT NULL,
classification CHAR(2) NOT NULL,
amount NUMERIC(12) NOT NULL,
balance NUMERIC(12) NOT NULL,
account_no VARCHAR(14) NOT NULL,
counterpart VARCHAR(50) NOT NULL,
memo VARCHAR(45),
counterpart_account_no VARCHAR(15),
counterpart_bank VARCHAR(30)
);
/**********************************/
/* Table Name: Dues */
/**********************************/
CREATE TABLE Dues(
transaction_no NUMERIC(10) NOT NULL,
reg_date DATE NOT NULL,
account_no VARCHAR(14) NOT NULL,
amount NUMERIC(12) NOT NULL,
counterpart VARCHAR(50) NOT NULL,
member VARCHAR(40)
);
/**********************************/
/* Table Name: Member */
/**********************************/
CREATE TABLE Member(
id VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
name VARCHAR(20) NOT NULL,
tel VARCHAR(12),
email VARCHAR(50),
addr VARCHAR(400)
);
/**********************************/
/* Table Name: Gathering */
/**********************************/
CREATE TABLE Gathering(
account_no VARCHAR(14) NOT NULL,
id VARCHAR(20) NOT NULL,
type CHAR(3) NOT NULL
);
/**********************************/
/* Table Name: code */
/**********************************/
CREATE TABLE code(
code CHAR(3) NOT NULL,
code_name VARCHAR(30) NOT NULL,
code_type VARCHAR(30) NOT NULL
);
ALTER TABLE Account ADD CONSTRAINT IDX_Account_PK PRIMARY KEY (account_no);
ALTER TABLE Transaction ADD CONSTRAINT IDX_Transaction_PK PRIMARY KEY (transaction_no);
ALTER TABLE Transaction ADD CONSTRAINT IDX_Transaction_FK0 FOREIGN KEY (account_no) REFERENCES Account (account_no);
ALTER TABLE Dues ADD CONSTRAINT IDX_Dues_PK PRIMARY KEY (transaction_no);
ALTER TABLE Dues ADD CONSTRAINT IDX_Dues_FK0 FOREIGN KEY (transaction_no) REFERENCES Transaction (transaction_no);
ALTER TABLE Dues ADD CONSTRAINT IDX_Dues_FK1 FOREIGN KEY (account_no) REFERENCES Account (account_no);
ALTER TABLE Member ADD CONSTRAINT IDX_Member_PK PRIMARY KEY (id);
ALTER TABLE Gathering ADD CONSTRAINT IDX_Gathering_PK PRIMARY KEY (account_no, id);
ALTER TABLE Gathering ADD CONSTRAINT IDX_Gathering_FK0 FOREIGN KEY (id) REFERENCES Member (id);
ALTER TABLE Gathering ADD CONSTRAINT IDX_Gathering_FK1 FOREIGN KEY (account_no) REFERENCES Account (account_no);
ALTER TABLE code ADD CONSTRAINT IDX_code_PK PRIMARY KEY (code);
SELECT * FROM code;
SELECT * FROM Gathering;
SELECT * FROM Member;
SELECT * FROM Dues;
SELECT * FROM Transaction;
SELECT * FROM Account;