Initial commit
Created basic application design and data schemas.
This commit is contained in:
34
db/createChainDatabase.sql
Normal file
34
db/createChainDatabase.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
CREATE DATABASE IF NOT EXISTS chain;
|
||||
USE chain;
|
||||
CREATE TABLE IF NOT EXISTS blocks(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
blockId VARCHAR(32) UNIQUE NOT NULL,
|
||||
blockHash VARCHAR(64) UNIQUE NOT NULL,
|
||||
previousHash VARCHAR(64) UNIQUE NOT NULL,
|
||||
timestamp DATETIME NOT NULL,
|
||||
height INT UNIQUE NOT NULL,
|
||||
nonce INT NOT NULL
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS cards(
|
||||
rowId 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,
|
||||
transactionId VARCHAR(32) UNIQUE NOT NULL,
|
||||
timestamp DATETIME NOT NULL,
|
||||
receiver 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,
|
||||
baseUrl VARCHAR(128) UNIQUE NOT NULL,
|
||||
isUp BOOLEAN NOT NULL,
|
||||
downCount INT DEFAULT 0,
|
||||
lastTry TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
40
db/createMarketDatabase.sql
Normal file
40
db/createMarketDatabase.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
CREATE DATABASE IF NOT EXISTS market;
|
||||
USE market;
|
||||
CREATE TABLE IF NOT EXISTS users(
|
||||
rowId 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
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS buyOrders(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
buyOrderId VARCHAR(36) UNIQUE NOT NULL,
|
||||
pageId INT NOT NULL,
|
||||
price FLOAT NOT NULL,
|
||||
volume INT NOT NULL,
|
||||
fee FLOAT NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (userId) REFERENCES users(userId)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS sellOrders(
|
||||
rowId INT PRIMARY KEY AUTO INCREMENT,
|
||||
sellOrderId VARCHAR(36) UNIQUE NOT NULL,
|
||||
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,
|
||||
cardId VARCHAR(36) NOT NULL,
|
||||
FOREIGN KEY (sellOrderId) REFERENCES sellOrders(sellOrderId) NOT NULL,
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS transactions(
|
||||
rowId 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
|
||||
);
|
||||
3
db/createPeersDatabase.sql
Normal file
3
db/createPeersDatabase.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
CREATE DATABASE IF NOT EXISTS peers;
|
||||
USE peers;
|
||||
CREATE TABLE IF NOT EXISTS peers
|
||||
12
db/getBuyOrders.sql
Normal file
12
db/getBuyOrders.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
SELECT buy_order_id
|
||||
FROM buy_orders
|
||||
JOIN cards
|
||||
ON buy_orders.title = cards.title
|
||||
WHERE title == desired_title
|
||||
AND price >= desired_price
|
||||
AND volume > (
|
||||
SELECT count(*)
|
||||
FROM transactions
|
||||
WHERE buy_order_id == buy_order_id;
|
||||
)
|
||||
ORDER BY price DESC;
|
||||
11
db/getSellOrders.sql
Normal file
11
db/getSellOrders.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
SELECT sell_orders.sell_order_id, sell_order_items.card_id
|
||||
FROM sell_orders
|
||||
JOIN sell_order_items
|
||||
ON sell_orders.sell_order_id = sell_order_items.sell_order_id
|
||||
WHERE price <= desired_price
|
||||
AND sell_order_items.card_id NOT IN (
|
||||
SELECT card_id
|
||||
FROM transactions
|
||||
WHERE sell_order_id == sell_order_id;
|
||||
)
|
||||
ORDER BY price ASC;
|
||||
Reference in New Issue
Block a user