Create schema.sql
This commit is contained in:
parent
c03789d283
commit
c36f437758
255
args/schema.sql
Normal file
255
args/schema.sql
Normal file
@ -0,0 +1,255 @@
|
||||
/* Blockchain Data */
|
||||
|
||||
CREATE TABLE LastTx(
|
||||
floID CHAR(34) NOT NULL,
|
||||
txid VARCHAR(128),
|
||||
PRIMARY KEY(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE NodeList(
|
||||
floID CHAR(34) NOT NULL,
|
||||
uri TINYTEXT,
|
||||
PRIMARY KEY(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE AssetList (
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
isTradeable BOOLEAN NOT NULL,
|
||||
PRIMARY KEY(asset)
|
||||
);
|
||||
|
||||
/* User Data */
|
||||
|
||||
CREATE TABLE UserSession (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
proxyKey CHAR(66) NOT NULL,
|
||||
session_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY (id),
|
||||
PRIMARY KEY(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE UserBalance (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
quantity DECIMAL(16, 8) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(floID, asset),
|
||||
KEY(id)
|
||||
);
|
||||
|
||||
/* User Requests */
|
||||
|
||||
CREATE TABLE RequestLog(
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
request TEXT NOT NULL,
|
||||
sign VARCHAR(160) NOT NULL,
|
||||
proxy BOOLEAN NOT NULL,
|
||||
request_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE (sign)
|
||||
);
|
||||
|
||||
CREATE TABLE SellOrder (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
quantity DECIMAL(16, 8) NOT NULL,
|
||||
price DECIMAL(16, 8) NOT NULL,
|
||||
time_placed TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (asset) REFERENCES AssetList(asset)
|
||||
);
|
||||
|
||||
CREATE TABLE BuyOrder (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
quantity DECIMAL(16, 8) NOT NULL,
|
||||
maxPrice DECIMAL(16, 8) NOT NULL,
|
||||
time_placed TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (asset) REFERENCES AssetList(asset)
|
||||
);
|
||||
|
||||
CREATE TABLE VaultTransactions (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
mode TINYINT NOT NULL,
|
||||
asset_type TINYINT NOT NULL,
|
||||
asset VARCHAR(32),
|
||||
amount DECIMAL(16, 8),
|
||||
txid VARCHAR(128),
|
||||
locktime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
r_status TINYINT NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
|
||||
/* Transaction Data */
|
||||
|
||||
CREATE TABLE PriceHistory (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
rate DECIMAL(16, 8) NOT NULL,
|
||||
rec_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (asset) REFERENCES AssetList(asset)
|
||||
);
|
||||
|
||||
CREATE TABLE TransferTransactions (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
sender CHAR(34) NOT NULL,
|
||||
receiver TEXT NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
totalAmount DECIMAL(16, 8) NOT NULL,
|
||||
tx_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
txid VARCHAR(66) NOT NULL,
|
||||
KEY(id),
|
||||
PRIMARY KEY(txid)
|
||||
);
|
||||
|
||||
CREATE TABLE TradeTransactions (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
seller CHAR(34) NOT NULL,
|
||||
buyer CHAR(34) NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
quantity DECIMAL(16, 8) NOT NULL,
|
||||
unitValue DECIMAL(16, 8) NOT NULL,
|
||||
tx_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
txid VARCHAR(66) NOT NULL,
|
||||
KEY(id),
|
||||
PRIMARY KEY(txid),
|
||||
FOREIGN KEY (asset) REFERENCES AssetList(asset)
|
||||
);
|
||||
|
||||
CREATE TABLE AuditTrade(
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
rec_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
unit_price DECIMAL(16, 8) NOT NULL,
|
||||
quantity DECIMAL(16, 8) NOT NULL,
|
||||
total_cost DECIMAL(16, 8) NOT NULL,
|
||||
asset VARCHAR(64) NOT NULL,
|
||||
sellerID CHAR(34) NOT NULL,
|
||||
seller_old_asset DECIMAL(16, 8) NOT NULL,
|
||||
seller_new_asset DECIMAL(16, 8) NOT NULL,
|
||||
seller_old_cash DECIMAL(16, 8) NOT NULL,
|
||||
seller_new_cash DECIMAL(16, 8) NOT NULL,
|
||||
buyerID CHAR(34) NOT NULL,
|
||||
buyer_old_asset DECIMAL(16, 8) NOT NULL,
|
||||
buyer_new_asset DECIMAL(16, 8) NOT NULL,
|
||||
buyer_old_cash DECIMAL(16, 8) NOT NULL,
|
||||
buyer_new_cash DECIMAL(16, 8) NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (asset) REFERENCES AssetList(asset)
|
||||
);
|
||||
|
||||
/* Backup Feature (Tables & Triggers) */
|
||||
|
||||
CREATE TABLE _backup (
|
||||
t_name VARCHAR(64),
|
||||
id INT,
|
||||
mode BOOLEAN DEFAULT TRUE,
|
||||
u_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(t_name, id)
|
||||
);
|
||||
|
||||
CREATE table _backupCache(
|
||||
id INT AUTO_INCREMENT,
|
||||
t_name VARCHAR(64),
|
||||
data_cache LONGTEXT,
|
||||
fail BOOLEAN,
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
|
||||
CREATE TABLE sinkShares(
|
||||
num INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
share TEXT,
|
||||
time_stored TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(num)
|
||||
);
|
||||
|
||||
CREATE TABLE discardedSinks(
|
||||
id INT AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
discard_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY(id),
|
||||
PRIMARY KEY(floID)
|
||||
);
|
||||
|
||||
CREATE TRIGGER discardedSinks_I AFTER INSERT ON discardedSinks
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('discardedSinks', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER discardedSinks_U AFTER UPDATE ON discardedSinks
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('discardedSinks', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER discardedSinks_D AFTER DELETE ON discardedSinks
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('discardedSinks', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER RequestLog_I AFTER INSERT ON RequestLog
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('RequestLog', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER RequestLog_U AFTER UPDATE ON RequestLog
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('RequestLog', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER RequestLog_D AFTER DELETE ON RequestLog
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('RequestLog', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER UserSession_I AFTER INSERT ON UserSession
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserSession', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER UserSession_U AFTER UPDATE ON UserSession
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserSession', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER UserSession_D AFTER DELETE ON UserSession
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserSession', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER UserBalance_I AFTER INSERT ON UserBalance
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserBalance', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER UserBalance_U AFTER UPDATE ON UserBalance
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserBalance', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER UserBalance_D AFTER DELETE ON UserBalance
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('UserBalance', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER SellOrder_I AFTER INSERT ON SellOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('SellOrder', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER SellOrder_U AFTER UPDATE ON SellOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('SellOrder', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER SellOrder_D AFTER DELETE ON SellOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('SellOrder', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER BuyOrder_I AFTER INSERT ON BuyOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('BuyOrder', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER BuyOrder_U AFTER UPDATE ON BuyOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('BuyOrder', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER BuyOrder_D AFTER DELETE ON BuyOrder
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('BuyOrder', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER VaultTransactions_I AFTER INSERT ON VaultTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('VaultTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER VaultTransactions_U AFTER UPDATE ON VaultTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('VaultTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER VaultTransactions_D AFTER DELETE ON VaultTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('VaultTransactions', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER PriceHistory_I AFTER INSERT ON PriceHistory
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('PriceHistory', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER PriceHistory_U AFTER UPDATE ON PriceHistory
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('PriceHistory', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER PriceHistory_D AFTER DELETE ON PriceHistory
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('PriceHistory', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER AuditTrade_I AFTER INSERT ON AuditTrade
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('AuditTrade', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER AuditTrade_U AFTER UPDATE ON AuditTrade
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('AuditTrade', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER AuditTrade_D AFTER DELETE ON AuditTrade
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('AuditTrade', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER TradeTransactions_I AFTER INSERT ON TradeTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TradeTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER TradeTransactions_U AFTER UPDATE ON TradeTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TradeTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER TradeTransactions_D AFTER DELETE ON TradeTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TradeTransactions', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
|
||||
CREATE TRIGGER TransferTransactions_I AFTER INSERT ON TransferTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TransferTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER TransferTransactions_U AFTER UPDATE ON TransferTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TransferTransactions', NEW.id) ON DUPLICATE KEY UPDATE mode=TRUE, u_time=DEFAULT;
|
||||
CREATE TRIGGER TransferTransactions_D AFTER DELETE ON TransferTransactions
|
||||
FOR EACH ROW INSERT INTO _backup (t_name, id) VALUES ('TransferTransactions', OLD.id) ON DUPLICATE KEY UPDATE mode=NULL, u_time=DEFAULT;
|
||||
Loading…
Reference in New Issue
Block a user