Adding foreign key attributes to SQL schema
- All floID based columns (floID, seller, buyer) are now foreign keys with reference to User.floID - tag in Tags table is now referred to tag in TagList - Indicate the error when adding user tags via API
This commit is contained in:
parent
9feef5bfe9
commit
1b6488bdd1
@ -12,21 +12,24 @@ floID CHAR(34) NOT NULL,
|
||||
proxyKey CHAR(66) NOT NULL,
|
||||
session_id VARCHAR(100) UNIQUE,
|
||||
session_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(floID)
|
||||
PRIMARY KEY(floID),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE Request_Log(
|
||||
floID CHAR(34) NOT NULL,
|
||||
request TEXT NOT NULL,
|
||||
sign TEXT NOT NULL,
|
||||
request_time DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
request_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE Cash (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL UNIQUE,
|
||||
rupeeBalance DECIMAL(12, 2) DEFAULT 0.00,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE Vault (
|
||||
@ -35,7 +38,8 @@ floID CHAR(34) NOT NULL,
|
||||
locktime DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
base DECIMAL(10, 2),
|
||||
quantity FLOAT NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE SellOrder (
|
||||
@ -44,7 +48,8 @@ floID CHAR(34) NOT NULL,
|
||||
quantity FLOAT NOT NULL,
|
||||
minPrice DECIMAL(10, 2),
|
||||
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE BuyOrder (
|
||||
@ -53,7 +58,8 @@ floID CHAR(34) NOT NULL,
|
||||
quantity FLOAT NOT NULL,
|
||||
maxPrice DECIMAL(10, 2) NOT NULL,
|
||||
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE Transactions (
|
||||
@ -61,7 +67,9 @@ seller CHAR(34) NOT NULL,
|
||||
buyer CHAR(34) NOT NULL,
|
||||
quantity FLOAT NOT NULL,
|
||||
unitValue DECIMAL(10, 2) NOT NULL,
|
||||
tx_time DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
tx_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (buyer) REFERENCES Users(floID),
|
||||
FOREIGN KEY (seller) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE inputFLO (
|
||||
@ -70,7 +78,8 @@ txid VARCHAR(128) NOT NULL,
|
||||
floID CHAR(34) NOT NULL,
|
||||
amount FLOAT,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE outputFLO (
|
||||
@ -79,7 +88,8 @@ txid VARCHAR(128),
|
||||
floID CHAR(34) NOT NULL,
|
||||
amount FLOAT NOT NULL,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE inputRupee (
|
||||
@ -88,7 +98,8 @@ txid VARCHAR(128) NOT NULL,
|
||||
floID CHAR(34) NOT NULL,
|
||||
amount FLOAT,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE outputRupee (
|
||||
@ -97,7 +108,8 @@ txid VARCHAR(128),
|
||||
floID CHAR(34) NOT NULL,
|
||||
amount FLOAT NOT NULL,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY(id)
|
||||
PRIMARY KEY(id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||
);
|
||||
|
||||
CREATE TABLE TagList (
|
||||
@ -115,7 +127,9 @@ id INT NOT NULL AUTO_INCREMENT,
|
||||
floID CHAR(34) NOT NULL,
|
||||
tag VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY(floID, tag),
|
||||
KEY (id)
|
||||
KEY (id),
|
||||
FOREIGN KEY (floID) REFERENCES Users(floID),
|
||||
FOREIGN KEY (tag) REFERENCES TagList(tag)
|
||||
);
|
||||
|
||||
CREATE TABLE priceHistory (
|
||||
|
||||
@ -9,6 +9,8 @@ function addTag(floID, tag) {
|
||||
.catch(error => {
|
||||
if (error.code === "ER_DUP_ENTRY")
|
||||
reject(INVALID(`${floID} already in ${tag}`));
|
||||
else if (error.code === "ER_NO_REFERENCED_ROW")
|
||||
reject(INVALID(`Invalid user-floID and/or Tag`));
|
||||
else
|
||||
reject(error);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user