Please review my schema and point out any issues...thanks.
CREATE TABLE IF NOT EXISTS status (
id INTEGER PRIMARY KEY AUTOINCREMENT,
status TEXT NOT NULL,
comment TEXT NOT NULL,
create_date TEXT NOT NULL,
update_date TEXT NOT NULL
);
INSERT INTO status (status, comment, create_date, update_date) VALUES
('Active', 'The Contact is Active.', datetime('now','localtime'), datetime('now','localtime')),
('Inactive', 'The Contact is no longer Active.', datetime('now','localtime'), datetime('now','localtime')),
('Disabled', 'The Contact has been Disabled.', datetime('now','localtime'), datetime('now','localtime')),
('Unsubscribed', 'The Contact has Unsubscribed from any further contact.', datetime('now','localtime'), datetime('now','localtime')),
('Pending', 'The Contact has been Created but not Activated.', datetime('now','localtime'), datetime('now','localtime'));
CREATE TABLE IF NOT EXISTS contacts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
email TEXT,
voterid TEXT,
fname TEXT,
lname TEXT NOT NULL,
street TEXT,
city TEXT,
state TEXT,
zip TEXT,
cell TEXT,
company TEXT,
title TEXT,
create_date TEXT NOT NULL,
update_date TEXT NOT NULL,
statusid INTEGER,
FOREIGN KEY (statusid) REFERENCES status(id)
);
INSERT INTO contacts (voterid, fname, lname, street, city, state, zip, statusid, create_date, update_date) VALUES
('105008499','JOHN','SMITH','29 ROYAL DR','TALLAHASSEE','FL','30309', 5, datetime('now','localtime'), datetime('now','localtime'));
It works:
ASKER
Could you expound on this? What key is a surrogate? And, what is a natural primary key?