303 lines
8.4 KiB
MySQL
303 lines
8.4 KiB
MySQL
|
/**
|
||
|
Model : NorthWind
|
||
|
**/
|
||
|
|
||
|
DROP SCHEMA IF EXISTS northwind;
|
||
|
|
||
|
CREATE SCHEMA northwind;
|
||
|
USE northwind;
|
||
|
|
||
|
/* Table: user (Application Users) */
|
||
|
CREATE TABLE user (
|
||
|
user_id NVARCHAR(20) NOT NULL,
|
||
|
password NVARCHAR(255) NOT NULL,
|
||
|
first_name NVARCHAR(50) ,
|
||
|
last_name NVARCHAR(50) ,
|
||
|
email NVARCHAR(70) ,
|
||
|
security_provider_id INT ,
|
||
|
default_customer_id INT ,
|
||
|
company NVARCHAR(50) ,
|
||
|
phone NVARCHAR(20) ,
|
||
|
address1 NVARCHAR(100),
|
||
|
address2 NVARCHAR(100),
|
||
|
country NVARCHAR(20) ,
|
||
|
postal NVARCHAR(20) ,
|
||
|
role NVARCHAR(20) ,
|
||
|
other_roles NVARCHAR(80) ,
|
||
|
is_active TINYINT ,
|
||
|
is_blocked TINYINT ,
|
||
|
secret_question NVARCHAR(100),
|
||
|
secret_answer NVARCHAR(100),
|
||
|
enable_beta_testing TINYINT,
|
||
|
enable_renewal TINYINT,
|
||
|
CONSTRAINT user_id PRIMARY KEY(user_id)
|
||
|
);
|
||
|
|
||
|
/* Table: customers */
|
||
|
CREATE TABLE customers (
|
||
|
id INT NOT NULL,
|
||
|
last_name VARCHAR(50) ,
|
||
|
first_name VARCHAR(50) ,
|
||
|
email VARCHAR(50) ,
|
||
|
company VARCHAR(50) ,
|
||
|
phone VARCHAR(25) ,
|
||
|
address1 VARCHAR(150),
|
||
|
address2 VARCHAR(150),
|
||
|
city VARCHAR(50) ,
|
||
|
state VARCHAR(50) ,
|
||
|
postal_code VARCHAR(15) ,
|
||
|
country VARCHAR(50) ,
|
||
|
PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
/* Table: employees */
|
||
|
CREATE TABLE employees (
|
||
|
id INT NOT NULL,
|
||
|
last_name VARCHAR(50) ,
|
||
|
first_name VARCHAR(50) ,
|
||
|
email VARCHAR(50) ,
|
||
|
avatar VARCHAR(250) ,
|
||
|
job_title VARCHAR(50) ,
|
||
|
department VARCHAR(50) ,
|
||
|
manager_id INT ,
|
||
|
phone VARCHAR(25) ,
|
||
|
address1 VARCHAR(150),
|
||
|
address2 VARCHAR(150),
|
||
|
city VARCHAR(50) ,
|
||
|
state VARCHAR(50) ,
|
||
|
postal_code VARCHAR(15) ,
|
||
|
country VARCHAR(50) ,
|
||
|
PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
/* Table: orders */
|
||
|
CREATE TABLE orders (
|
||
|
id INT NOT NULL,
|
||
|
employee_id INT ,
|
||
|
customer_id INT ,
|
||
|
order_date DATETIME ,
|
||
|
shipped_date DATETIME ,
|
||
|
ship_name VARCHAR(50) ,
|
||
|
ship_address1 VARCHAR(150) ,
|
||
|
ship_address2 VARCHAR(150) ,
|
||
|
ship_city VARCHAR(50) ,
|
||
|
ship_state VARCHAR(50) ,
|
||
|
ship_postal_code VARCHAR(50) ,
|
||
|
ship_country VARCHAR(50) ,
|
||
|
shipping_fee DECIMAL(19,4) NULL DEFAULT '0.0000',
|
||
|
payment_type VARCHAR(50) ,
|
||
|
paid_date DATETIME ,
|
||
|
order_status VARCHAR(25),
|
||
|
PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
/* Table: order_details */
|
||
|
CREATE TABLE order_items (
|
||
|
order_id INT NOT NULL,
|
||
|
product_id INT ,
|
||
|
quantity DECIMAL(18,4) NOT NULL DEFAULT '0.0000',
|
||
|
unit_price DECIMAL(19,4) NULL DEFAULT '0.0000',
|
||
|
discount DECIMAL(19,4) NULL DEFAULT '0.0000',
|
||
|
order_item_status VARCHAR(25),
|
||
|
date_allocated DATETIME ,
|
||
|
PRIMARY KEY (order_id, product_id)
|
||
|
);
|
||
|
|
||
|
/* Table: products */
|
||
|
CREATE TABLE products (
|
||
|
id INT NOT NULL,
|
||
|
product_code VARCHAR(25) ,
|
||
|
product_name VARCHAR(50) ,
|
||
|
description VARCHAR(250),
|
||
|
standard_cost DECIMAL(19,4) NULL DEFAULT '0.0000',
|
||
|
list_price DECIMAL(19,4) NOT NULL DEFAULT '0.0000',
|
||
|
target_level INT ,
|
||
|
reorder_level INT ,
|
||
|
minimum_reorder_quantity INT ,
|
||
|
quantity_per_unit VARCHAR(50) ,
|
||
|
discontinued TINYINT NOT NULL DEFAULT '0',
|
||
|
category VARCHAR(50),
|
||
|
PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
|
||
|
/* Foreign Key: orders */
|
||
|
ALTER TABLE orders ADD CONSTRAINT fk_orders__customers FOREIGN KEY (customer_id) REFERENCES customers(id);
|
||
|
ALTER TABLE orders ADD CONSTRAINT fk_orders__employees FOREIGN KEY (employee_id) REFERENCES employees(id);
|
||
|
/* Foreign Key: order_items */
|
||
|
ALTER TABLE order_items ADD CONSTRAINT fk_order_items__orders FOREIGN KEY (order_id) REFERENCES orders(id);
|
||
|
ALTER TABLE order_items ADD CONSTRAINT fk_order_items__products FOREIGN KEY (product_id) REFERENCES products(id);
|
||
|
|
||
|
/* Views */
|
||
|
CREATE OR REPLACE VIEW order_info AS
|
||
|
select o.id as order_id
|
||
|
, o.order_date
|
||
|
, o.order_status
|
||
|
, o.paid_date
|
||
|
, o.payment_type
|
||
|
, o.shipped_date
|
||
|
, o.shipping_fee
|
||
|
, o.ship_name
|
||
|
, o.ship_address1
|
||
|
, o.ship_address2
|
||
|
, o.ship_city
|
||
|
, o.ship_state
|
||
|
, o.ship_postal_code
|
||
|
, o.ship_country
|
||
|
, o.customer_id
|
||
|
, o.employee_id
|
||
|
, concat(c.first_name, ' ', c.last_name) as customer_name
|
||
|
, c.phone customer_phone
|
||
|
, c.email customer_email
|
||
|
, c.company as customer_company
|
||
|
, concat(e.first_name, ' ', e.last_name) as employee_name
|
||
|
, e.department employee_department
|
||
|
, e.job_title employee_job_title
|
||
|
From orders o
|
||
|
, employees e
|
||
|
, customers c
|
||
|
where o.employee_id = e.id
|
||
|
and o.customer_id = c.id;
|
||
|
|
||
|
CREATE OR REPLACE VIEW order_details AS
|
||
|
select oi.order_id
|
||
|
, oi.product_id
|
||
|
, oi.quantity
|
||
|
, oi.unit_price
|
||
|
, oi.discount
|
||
|
, oi.date_allocated
|
||
|
, oi.order_item_status
|
||
|
, o.order_date
|
||
|
, o.order_status
|
||
|
, o.paid_date
|
||
|
, o.payment_type
|
||
|
, o.shipped_date
|
||
|
, o.shipping_fee
|
||
|
, o.ship_name
|
||
|
, o.ship_address1
|
||
|
, o.ship_address2
|
||
|
, o.ship_city
|
||
|
, o.ship_state
|
||
|
, o.ship_postal_code
|
||
|
, o.ship_country
|
||
|
, p.product_code
|
||
|
, p.product_name
|
||
|
, p.category
|
||
|
, p.description
|
||
|
, p.list_price
|
||
|
, o.customer_id
|
||
|
, concat(c.first_name, ' ', c.last_name) as customer_name
|
||
|
, c.phone as customer_phone
|
||
|
, c.email as customer_email
|
||
|
, c.company as customer_company
|
||
|
, o.employee_id
|
||
|
, concat(e.first_name, ' ', e.last_name) as employee_name
|
||
|
, e.department as employee_department
|
||
|
, e.job_title as employee_job_title
|
||
|
From orders o
|
||
|
, products p
|
||
|
, order_items oi
|
||
|
, employees e
|
||
|
, customers c
|
||
|
where oi.order_id = o.id
|
||
|
and oi.product_id = p.id
|
||
|
and o.employee_id = e.id
|
||
|
and o.customer_id = c.id;
|
||
|
|
||
|
CREATE OR REPLACE VIEW customer_orders AS
|
||
|
select o.order_date, o.order_status, o.paid_date, o.payment_type, o.shipping_fee, o.customer_id
|
||
|
, c.first_name customer_first_name, c.last_name customer_last_name, c.phone customer_phone, c.email customer_email, c.company
|
||
|
from orders o,customers c
|
||
|
where o.customer_id = c.id;
|
||
|
|
||
|
CREATE OR REPLACE VIEW employee_orders AS
|
||
|
select o.order_date, o.order_status, o.paid_date, o.payment_type, o.shipping_fee, o.employee_id
|
||
|
, e.first_name employee_first_name, e.last_name employee_last_name, e.email employee_email, e.department
|
||
|
from orders o,employees e
|
||
|
where o.customer_id = e.id;
|
||
|
|
||
|
|
||
|
/* REAL_NET */
|
||
|
CREATE TABLE RN_INSTRUCTOR (
|
||
|
ID VARCHAR(20) NOT NULL AUTO_INCREMENT,
|
||
|
FIRST_NAME VARCHAR(20) NOT NULL,
|
||
|
LAST_NAME VARCHAR(20) NOT NULL,
|
||
|
EMAIL VARCHAR(20) NOT NULL,
|
||
|
CREATED_AT DATETIME,
|
||
|
UPDATED_AT DATETIME,
|
||
|
PRIMARY KEY (id)
|
||
|
);
|
||
|
|
||
|
/*==== EXTENSION FIELD ===*/
|
||
|
CREATE TABLE RN_EXT_FIELD_T (
|
||
|
ID int(11) NOT NULL AUTO_INCREMENT,
|
||
|
TYPE VARCHAR(20),
|
||
|
DATA_TYPE VARCHAR(20),
|
||
|
FIELD_NAME VARCHAR(20),
|
||
|
MAPPING VARCHAR(20),
|
||
|
FORM_CODE VARCHAR(20),
|
||
|
IS_ACTIVE BOOLEAN,
|
||
|
ACCOUNT_ID VARCHAR(20),
|
||
|
CREATED_AT DATETIME,
|
||
|
UPDATED_AT DATETIME,
|
||
|
CREATED_BY VARCHAR(20),
|
||
|
UPDATED_BY VARCHAR(20),
|
||
|
PRIMARY KEY (ID)
|
||
|
);
|
||
|
|
||
|
/*========= lookup ========
|
||
|
CREATE TABLE `rn_lookup_values_t` (
|
||
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||
|
`LOOKUP_CODE` longtext,
|
||
|
`MEANING` longtext,
|
||
|
`DESCRIPTION` longtext,
|
||
|
`LOOKUP_TYPE` longtext,
|
||
|
`ACTIVE_START_DATE` datetime DEFAULT NULL,
|
||
|
`ACTIVE_END_DATE` datetime DEFAULT NULL,
|
||
|
`ENABLED_FLAG` longtext,
|
||
|
`CREATED_BY` int(11) DEFAULT NULL,
|
||
|
`CREATION_DATE` datetime DEFAULT NULL,
|
||
|
`LAST_UPDATED_BY` int(11) DEFAULT NULL,
|
||
|
`LAST_UPDATE_DATE` datetime DEFAULT NULL
|
||
|
PRIMARY KEY (`ID`)
|
||
|
); */
|
||
|
|
||
|
|
||
|
|
||
|
/*========= LOGGING ========
|
||
|
|
||
|
DROP TABLE logging_event_exception IF EXISTS;
|
||
|
DROP TABLE logging_event_property IF EXISTS;
|
||
|
DROP TABLE logging_event IF EXISTS;
|
||
|
|
||
|
CREATE TABLE logging_event (
|
||
|
timestmp BIGINT NOT NULL,
|
||
|
formatted_message LONGVARCHAR NOT NULL,
|
||
|
logger_name VARCHAR(256) NOT NULL,
|
||
|
level_string VARCHAR(256) NOT NULL,
|
||
|
thread_name VARCHAR(256),
|
||
|
reference_flag SMALLINT,
|
||
|
arg0 VARCHAR(256),
|
||
|
arg1 VARCHAR(256),
|
||
|
arg2 VARCHAR(256),
|
||
|
arg3 VARCHAR(256),
|
||
|
caller_filename VARCHAR(256),
|
||
|
caller_class VARCHAR(256),
|
||
|
caller_method VARCHAR(256),
|
||
|
caller_line CHAR(4),
|
||
|
event_id IDENTITY NOT NULL);
|
||
|
|
||
|
|
||
|
CREATE TABLE logging_event_property (
|
||
|
event_id BIGINT NOT NULL,
|
||
|
mapped_key VARCHAR(254) NOT NULL,
|
||
|
mapped_value LONGVARCHAR,
|
||
|
PRIMARY KEY(event_id, mapped_key),
|
||
|
FOREIGN KEY (event_id) REFERENCES logging_event(event_id));
|
||
|
|
||
|
CREATE TABLE logging_event_exception (
|
||
|
event_id BIGINT NOT NULL,
|
||
|
i SMALLINT NOT NULL,
|
||
|
trace_line VARCHAR(256) NOT NULL,
|
||
|
PRIMARY KEY(event_id, i),
|
||
|
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)); */
|