CREATE DATABASE address_book;
USE address_book;
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE contacts (
contact_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
full_name VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
email VARCHAR(100),
address VARCHAR(200),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
CREATE TABLE groups (
group_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
group_name VARCHAR(50) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE,
UNIQUE (user_id, group_name)
);
CREATE TABLE contact_group (
contact_id INT NOT NULL,
group_id INT NOT NULL,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id) REFERENCES contacts(contact_id) ON DELETE CASCADE,
FOREIGN KEY (group_id) REFERENCES groups(group_id) ON DELETE CASCADE
);