Developing components.
* Created database classes * Wrote initial queries * Added validations
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
CREATE DATABASE IF NOT EXISTS chain;
|
||||
USE chain;
|
||||
CREATE TABLE IF NOT EXISTS blocks(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
blockId VARCHAR(32) UNIQUE NOT NULL,
|
||||
blockHash VARCHAR(64) UNIQUE NOT NULL,
|
||||
previousHash VARCHAR(64) UNIQUE NOT NULL,
|
||||
@@ -10,23 +10,26 @@ CREATE TABLE IF NOT EXISTS blocks(
|
||||
nonce INT NOT NULL
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS cards(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
cardId VARCHAR(32) UNIQUE NOT NULL,
|
||||
pageId INT NOT NULL,
|
||||
FOREIGN KEY (blockId) REFERENCES blocks(blockId)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS transactions(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
transactionId VARCHAR(32) UNIQUE NOT NULL,
|
||||
timestamp DATETIME NOT NULL,
|
||||
sender VARCHAR(128) NOT NULL,
|
||||
receiver VARCHAR(128) NOT NULL,
|
||||
signature VARCHAR(128) NOT NULL,
|
||||
isPending BOOLEAN NOT NULL DEFAULT true,
|
||||
isAbandoned BOOLEAN NOT NULL DEFAULT false,
|
||||
FOREIGN KEY (blockId) REFERENCES blocks(blockId),
|
||||
FOREIGN KEY (cardId) REFERENCES cards(cardId)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS peers(
|
||||
peerId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
peerId VARCHAR(32) UNIQUE NOT NULL,
|
||||
baseUrl VARCHAR(128) UNIQUE NOT NULL,
|
||||
isUp BOOLEAN NOT NULL,
|
||||
downCount INT DEFAULT 0,
|
||||
|
||||
@@ -1,40 +1,45 @@
|
||||
CREATE DATABASE IF NOT EXISTS market;
|
||||
USE market;
|
||||
CREATE TABLE IF NOT EXISTS users(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
userId VARCHAR(36) UNIQUE NOT NULL,
|
||||
userName VARCHAR(64) UNIQUE NOT NULL,
|
||||
passwordHash VARCHAR(64) NOT NULL,
|
||||
email VARCHAR(64) UNIQUE NOT NULL,
|
||||
balance FLOAT NOT NULL DEFAULT 0,
|
||||
public_key VARCHAR(128) NOT NULL
|
||||
publicKey VARCHAR(128) NOT NULL
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS buyOrders(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
CREATE TABLE IF NOT EXISTS buy_orders(
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
buyOrderId VARCHAR(36) UNIQUE NOT NULL,
|
||||
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
expires DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP() + INTERVAL 3 DAY,
|
||||
pageId INT NOT NULL,
|
||||
price FLOAT NOT NULL,
|
||||
volume INT NOT NULL,
|
||||
fee FLOAT NOT NULL DEFAULT 0,
|
||||
sold INT NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (userId) REFERENCES users(userId)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS sellOrders(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
CREATE TABLE IF NOT EXISTS sell_orders(
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sellOrderId VARCHAR(36) UNIQUE NOT NULL,
|
||||
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
expires DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP() + INTERVAL 3 DAY,
|
||||
price FLOAT NOT NULL,
|
||||
fee FLOAT NOT NULL,
|
||||
FOREIGN KEY (userId) REFERENCES users(userId)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS sellOrdersItems(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
CREATE TABLE IF NOT EXISTS sell_orders_items(
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
cardId VARCHAR(36) NOT NULL,
|
||||
FOREIGN KEY (sellOrderId) REFERENCES sellOrders(sellOrderId) NOT NULL,
|
||||
FOREIGN KEY (sellOrderId) REFERENCES sell_orders(sellOrderId) NOT NULL
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS transactions(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sqlId INT PRIMARY KEY AUTO INCREMENT,
|
||||
transactionId VARCHAR(36) UNIQUE NOT NULL,
|
||||
isPending BOOLEAN NOT NULL DEFAULT true,
|
||||
isAbandoned BOOLEAN NOT NULL DEFAULT false,
|
||||
FOREIGN KEY (buyOrderId) REFERENCES buyOrders(buyOrderId) NOT NULL,
|
||||
FOREIGN KEY (sellOrderId) REFERENCES sellOrders(sellOrderId) NOT NULL
|
||||
FOREIGN KEY (buyOrderId) REFERENCES buy_orders(buyOrderId) NOT NULL,
|
||||
FOREIGN KEY (sellOrderItemSqlId) REFERENCES sell_order_items(sqlId) NOT NULL
|
||||
);
|
||||
|
||||
10
db/getDeck.sql
Normal file
10
db/getDeck.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
SELECT cardId, pageId, transactionId
|
||||
FROM (
|
||||
SELECT cardId, pageId, transactionId, ROW_NUMBER() OVER (
|
||||
PARTITION BY cardId ORDER BY timestamp DESC
|
||||
) AS rowNumber
|
||||
FROM transactions
|
||||
JOIN cards
|
||||
WHERE receiver == {userId}
|
||||
) AS subquery
|
||||
WHERE rowNumber == 0;
|
||||
0
db/getLastTransactionForCard.sql
Normal file
0
db/getLastTransactionForCard.sql
Normal file
Reference in New Issue
Block a user