DROP DATABASE IF EXISTS ap;
CREATE DATABASE IF NOT EXISTS ap;
USE ap;
CREATE TABLE vendors (
vendorID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
vendorName VARCHAR(45) NOT NULL,
vendorAddress VARCHAR(45) NOT NULL,
vendorCity VARCHAR(45) NOT NULL,
vendorState VARCHAR(45) NOT NULL,
VendorZipCode VARCHAR(10) NOT NULL,
vendorPhone VARCHAR(20) NOT NULL UNIQUE
);
CREATE TABLE invoices (
invoiceID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
VendorID INT NOT NULL REFERENCES vendors (vendorID),
invoiceNumber VARCHAR(45) NOT NULL UNIQUE,
invoiceDate DATETIME NOT NULL,
invoiceTotal DECIMAL NOT NULL,
paymentTotal DECIMAL NOT NULL
);
CREATE TABLE lineItems(
lineItemID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
invoiceID INT NOT NULL REFERENCES invoices (invoiceID),
description VARCHAR(45),
quantity INT NOT NULL,
price INT NOT NULL,
lineItemTotal DECIMAL NOT NULL
);
CREATE UNIQUE INDEX invoiceVendors
ON invoices (invoiceID,vendorID);
CREATE UNIQUE INDEX lineItemsInvoices
ON lineItems (lineItemID,invoiceID);
CREATE UNIQUE INDEX invoiceNumberIndex
ON invoices (invoiceNumber);
CREATE USER IF NOT EXISTS ap_user@localhost
IDENTIFIED BY 'sesame';
GRANT SELECT,INSERT,UPDATE
ON ap.* TO 'ap_user'@'localhost';
REVOKE DELETE
ON ap.* FROM 'ap_user'@'localhost';