OBJECTIVE
CREATE a TABLE for AccountsReceivables with associated parameters (e.g invoice_id, customer_id, etc.). Ensure that CONSTRAINTS are added to business_unit and invoice_terms to help standardize user input
APPROACH/SCHEMA
CUSTOMER table
CREATE TABLE customers
(id INT NOT NULL PRIMARY KEY,
 global_risk_partner varchar(32) NOT NULL
);
ACCOUNTSRECEIVABLE table
CREATE TABLE AccountsReceivable
(upload_date TIMESTAMP NOT NULL,
 invoice_id INT NOT NULL,
 PRIMARY KEY(upload_date, invoice_id),
 /*Pull in customer_id from another table */
 customer_id INT NOT NULL,
 FOREIGN KEY (customer_id) REFERENCES customers(id), 
 /*Add constraints to standardize which business unit is responsible for invoice */
 business_unit varchar(16) NOT NULL,
 CONSTRAINT chk_business_unit CHECK (business_unit in ('PLP', 'DSI', 'JIMCO', 'PATTON', 'THRO', 'FRANCE', 'SWEDEN', 'UK', 'POLAND', 'GERMANY', 'HOLLAND', 'PINNACLE', 'NBUSA TN', 'NBUSA IL')),
 invoice_value float(2) NOT NULL,
 invoice_date DATE NOT NULL,
 /*Add constraints to standardize payment terms */
 invoice_terms INT NOT NULL,
 CONSTRAINT chk_invoice_terms CHECK (invoice_terms IN (30, 60, 90, 120)) /* dropdown list of invoice terms */
);
Inserting values into CUSTOMERS and ACCOUNTRECEIVABLE tables
INSERT INTO customers VALUES
(321, 'WALMART');
INSERT INTO AccountsReceivable VALUES
(CURRENT_DATE(), 123, 321, 'LP', 100.50, '2016-01-20', 30); /* This should throw an ERROR since 'LP' isn't a valid business_unit */
QUESTIONS
- When I run the schema, I am able to 
INSERTabusiness_unitthat is outside of theCONSTRAINT(i.eINSERT...'LP'whereLPisn't in theCONSTRAINT chk_business_unit..). How can I ensure that any user inputs are standardized so that the table ONLY includes valid parameters? 
REFERENCES