cs348/Project_3/scripts/create.sql

101 lines
2.2 KiB
MySQL
Raw Normal View History

2018-11-18 16:15:07 -05:00
set termout off
-- Admin Tables
create table Users(
UserId integer,
Username varchar(32),
Password varchar(32),
constraint user_unique unique (Username),
primary key (UserId));
create table Roles(
RoleId integer,
RoleName varchar(32),
EncryptionKey varchar(32),
constraint role_unique unique (RoleName),
primary key (RoleId));
create table UsersRoles(
UserId integer,
RoleId integer,
primary key (userId, RoleId),
foreign key (UserId) references Users(UserId),
foreign key (RoleId) references Roles(RoleId));
create table Privileges(
PrivId integer,
PrivName varchar(32),
constraint priv_unique unique (PrivName),
primary key (PrivId));
create table RolesPrivileges(
RoleId integer,
PrivId integer,
TableName varchar(32),
primary key(RoleId, PrivId, TableName),
foreign key (RoleId) references Roles(RoleId),
foreign key (PrivId) references Privileges(PrivId));
----------------------------------------------------------------------------------------------------
-- User Tables
create table Customers(
CustomerId integer,
FirstName varchar(30),
LastName varchar(30),
Address varchar(20),
EncryptedColumn number(10,0),
OwnerRole number(10, 0),
primary key(CustomerId));
create table Companies(
CompanyId integer,
CompanyName varchar(30),
Address varchar(20),
State varchar(2),
EncryptedColumn number(10,0),
OwnerRole number(10, 0),
primary key(CompanyId));
create table Retailers(
RetailerId integer,
RetailerName varchar(30),
Address varchar(20),
EncryptedColumn number(10,0),
OwnerRole number(10, 0),
primary key(RetailerId));
create table Products(
ProductId integer,
ProductName varchar(30),
Category varchar(30),
CompanyId integer,
ExFactoryPrice Number(10,4),
EncryptedColumn number(10,0),
OwnerRole number(10, 0),
primary key(ProductId));
create table RetailerInventories(
ProductId integer,
RetailerId integer,
TotalStock integer
EncryptedColumn number(10,0),
OwnerRole number(10, 0));
create table Orders(
OrderId integer,
CustomerId integer,
RetailerId integer,
ProductId integer,
Count integer,
UnitPrice Number(10,4),
OrderDate date,
Status varchar(10),
EncryptedColumn number(10,0),
OwnerRole number(10, 0),
primary key(OrderId));
set termout on