Students table (id unique)
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT,
age INT
);Employees table (name & email not null)
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone_number TEXT
);Users table (username & email unique)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE,
email TEXT UNIQUE
);Products table (price > 0, stock ≥ 0)
CREATE TABLE products (
id SERIAL PRIMARY KEY,
name TEXT,
price DECIMAL CHECK (price > 0),
stock INT CHECK (stock >= 0)
);Orders table (default + timestamp)
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
status TEXT DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Accounts table
CREATE TABLE accounts (
id SERIAL PRIMARY KEY,
account_number TEXT UNIQUE NOT NULL,
balance INT CHECK (balance >= 0)
);Enrollments table (unique combination)
CREATE TABLE enrollments (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id)
);Departments & Employees (foreign key)
CREATE TABLE departments (
id SERIAL PRIMARY KEY,
name TEXT
);
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name TEXT,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
- Foreign key with cascade CREATE TABLE departments ( id SERIAL PRIMARY KEY, name TEXT );
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name TEXT,
department_id INT,
FOREIGN KEY (department_id)
REFERENCES departments(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Top comments (0)