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,
|
proxyKey CHAR(66) NOT NULL,
|
||||||
session_id VARCHAR(100) UNIQUE,
|
session_id VARCHAR(100) UNIQUE,
|
||||||
session_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
session_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY(floID)
|
PRIMARY KEY(floID),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Request_Log(
|
CREATE TABLE Request_Log(
|
||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
request TEXT NOT NULL,
|
request TEXT NOT NULL,
|
||||||
sign 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 (
|
CREATE TABLE Cash (
|
||||||
id INT NOT NULL AUTO_INCREMENT,
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
floID CHAR(34) NOT NULL UNIQUE,
|
floID CHAR(34) NOT NULL UNIQUE,
|
||||||
rupeeBalance DECIMAL(12, 2) DEFAULT 0.00,
|
rupeeBalance DECIMAL(12, 2) DEFAULT 0.00,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Vault (
|
CREATE TABLE Vault (
|
||||||
@ -35,7 +38,8 @@ floID CHAR(34) NOT NULL,
|
|||||||
locktime DATETIME DEFAULT CURRENT_TIMESTAMP,
|
locktime DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
base DECIMAL(10, 2),
|
base DECIMAL(10, 2),
|
||||||
quantity FLOAT NOT NULL,
|
quantity FLOAT NOT NULL,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE SellOrder (
|
CREATE TABLE SellOrder (
|
||||||
@ -44,7 +48,8 @@ floID CHAR(34) NOT NULL,
|
|||||||
quantity FLOAT NOT NULL,
|
quantity FLOAT NOT NULL,
|
||||||
minPrice DECIMAL(10, 2),
|
minPrice DECIMAL(10, 2),
|
||||||
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE BuyOrder (
|
CREATE TABLE BuyOrder (
|
||||||
@ -53,7 +58,8 @@ floID CHAR(34) NOT NULL,
|
|||||||
quantity FLOAT NOT NULL,
|
quantity FLOAT NOT NULL,
|
||||||
maxPrice DECIMAL(10, 2) NOT NULL,
|
maxPrice DECIMAL(10, 2) NOT NULL,
|
||||||
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
time_placed DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE Transactions (
|
CREATE TABLE Transactions (
|
||||||
@ -61,7 +67,9 @@ seller CHAR(34) NOT NULL,
|
|||||||
buyer CHAR(34) NOT NULL,
|
buyer CHAR(34) NOT NULL,
|
||||||
quantity FLOAT NOT NULL,
|
quantity FLOAT NOT NULL,
|
||||||
unitValue DECIMAL(10, 2) 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 (
|
CREATE TABLE inputFLO (
|
||||||
@ -70,7 +78,8 @@ txid VARCHAR(128) NOT NULL,
|
|||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
amount FLOAT,
|
amount FLOAT,
|
||||||
status VARCHAR(50) NOT NULL,
|
status VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE outputFLO (
|
CREATE TABLE outputFLO (
|
||||||
@ -79,7 +88,8 @@ txid VARCHAR(128),
|
|||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
amount FLOAT NOT NULL,
|
amount FLOAT NOT NULL,
|
||||||
status VARCHAR(50) NOT NULL,
|
status VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE inputRupee (
|
CREATE TABLE inputRupee (
|
||||||
@ -88,7 +98,8 @@ txid VARCHAR(128) NOT NULL,
|
|||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
amount FLOAT,
|
amount FLOAT,
|
||||||
status VARCHAR(50) NOT NULL,
|
status VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE outputRupee (
|
CREATE TABLE outputRupee (
|
||||||
@ -97,7 +108,8 @@ txid VARCHAR(128),
|
|||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
amount FLOAT NOT NULL,
|
amount FLOAT NOT NULL,
|
||||||
status VARCHAR(50) NOT NULL,
|
status VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE TagList (
|
CREATE TABLE TagList (
|
||||||
@ -115,7 +127,9 @@ id INT NOT NULL AUTO_INCREMENT,
|
|||||||
floID CHAR(34) NOT NULL,
|
floID CHAR(34) NOT NULL,
|
||||||
tag VARCHAR(50) NOT NULL,
|
tag VARCHAR(50) NOT NULL,
|
||||||
PRIMARY KEY(floID, tag),
|
PRIMARY KEY(floID, tag),
|
||||||
KEY (id)
|
KEY (id),
|
||||||
|
FOREIGN KEY (floID) REFERENCES Users(floID),
|
||||||
|
FOREIGN KEY (tag) REFERENCES TagList(tag)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE priceHistory (
|
CREATE TABLE priceHistory (
|
||||||
|
|||||||
@ -9,6 +9,8 @@ function addTag(floID, tag) {
|
|||||||
.catch(error => {
|
.catch(error => {
|
||||||
if (error.code === "ER_DUP_ENTRY")
|
if (error.code === "ER_DUP_ENTRY")
|
||||||
reject(INVALID(`${floID} already in ${tag}`));
|
reject(INVALID(`${floID} already in ${tag}`));
|
||||||
|
else if (error.code === "ER_NO_REFERENCED_ROW")
|
||||||
|
reject(INVALID(`Invalid user-floID and/or Tag`));
|
||||||
else
|
else
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user