···11+CREATE TABLE IF NOT EXISTS activity (
22+ a_id INT NOT NULL AUTO_INCREMENT,
33+ title VARCHAR(80) NOT NULL,
44+ description VARCHAR(80) NOT NULL,
55+ date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
66+77+ PRIMARY KEY (a_id),
88+ FULLTEXT (title, description)
99+);
+8
lib/sql/activity_transaction.sql
···11+CREATE TABLE IF NOT EXISTS activity_transaction (
22+ a_id INT NOT NULL,
33+ t_id INT NOT NULL,
44+55+ PRIMARY KEY (a_id, t_id),
66+ FOREIGN KEY (a_id) REFERENCES activity(a_id) ON DELETE CASCADE,
77+ FOREIGN KEY (t_id) REFERENCES transaction(t_id) ON DELETE CASCADE
88+);
+10
lib/sql/board_member.sql
···11+CREATE TABLE IF NOT EXISTS board_member (
22+ m_id VARCHAR(9) NOT NULL,
33+ position VARCHAR(20) NOT NULL,
44+ year NUMERIC(4,0) CHECK (year > 1701 AND year < 2100) NOT NULL,
55+ role ENUM("Write", "Read", "None") NOT NULL,
66+ password BINARY(64) NOT NULL,
77+88+ PRIMARY KEY (m_id),
99+ FOREIGN KEY (m_id) REFERENCES member(m_id) ON DELETE CASCADE
1010+);
+8
lib/sql/initiator.sql
···11+CREATE TABLE IF NOT EXISTS initiator (
22+ m_id VARCHAR(9) NOT NULL,
33+ t_id INT NOT NULL,
44+55+ FOREIGN KEY (m_id) REFERENCES member(m_id) ON DELETE CASCADE,
66+ FOREIGN KEY (t_id) REFERENCES transaction(t_id) ON DELETE CASCADE,
77+ PRIMARY KEY (m_id, t_id)
88+);
+8
lib/sql/logger.sql
···11+CREATE TABLE IF NOT EXISTS logger (
22+ m_id VARCHAR(9) NOT NULL,
33+ t_id INT NOT NULL,
44+55+ FOREIGN KEY (m_id) REFERENCES member(m_id) ON DELETE CASCADE,
66+ FOREIGN KEY (t_id) REFERENCES transaction(t_id) ON DELETE CASCADE,
77+ PRIMARY KEY (m_id, t_id)
88+);
+15
lib/sql/member.sql
···11+CREATE TABLE IF NOT EXISTS member (
22+ m_id VARCHAR(9) NOT NULL,
33+ name VARCHAR(30) NOT NULL,
44+ second_name VARCHAR(30) NOT NULL,
55+ last_name VARCHAR(30) NOT NULL,
66+ second_last_name VARCHAR(30) NOT NULL,
77+ email VARCHAR(40) NOT NULL,
88+ phone_number VARCHAR(15) NOT NULL,
99+ status ENUM("Active", "Inactive") NOT NULL,
1010+ t_id INT,
1111+1212+ PRIMARY KEY (m_id),
1313+ FOREIGN KEY (t_id) REFERENCES transaction(t_id) ON DELETE SET NULL,
1414+ FULLTEXT (name, second_name, last_name, second_last_name)
1515+);
+8
lib/sql/product.sql
···11+CREATE TABLE IF NOT EXISTS product (
22+ p_id INT NOT NULL AUTO_INCREMENT,
33+ cents NUMERIC(10,0) NOT NULL,
44+ description VARCHAR(80) NOT NULL,
55+66+ PRIMARY KEY (p_id),
77+ FULLTEXT (description)
88+);
+11
lib/sql/transaction.sql
···11+CREATE TABLE IF NOT EXISTS transaction (
22+ t_id INT NOT NULL AUTO_INCREMENT,
33+ type ENUM("Expense", "Income") NOT NULL,
44+ Date DATETIME DEFAULT CURRENT_TIMESTAMP,
55+ quantity NUMERIC(5,0) NOT NULL,
66+ category ENUM("Membership", "Donation", "Lent", "Borrowed", "Other") NOT NULL,
77+ p_id INT,
88+99+ PRIMARY KEY (t_id),
1010+ FOREIGN KEY (p_id) REFERENCES product(p_id) ON DELETE SET NULL
1111+);