DEV Community

Robiul Awal
Robiul Awal

Posted on

Types of Database Relationships

One-to-One (1:1) Relationship

  • Definition: A single record in one table is related to only one record in another table, and vice versa.

  • Example: A User table and a UserProfile table, where each user has only one profile.

  • Use Case: Used when I want to split a table for security, performance, or organizational reasons.

One-to-One Code Example
Add a foreign key to one of the tables that references the primary key of the other table.

CREATE TABLE User (
user_id INT PRIMARY KEY,
username VARCHAR(50)
);

CREATE TABLE UserProfile (
profile_id INT PRIMARY KEY,
user_id INT UNIQUE,
bio TEXT,
FOREIGN KEY (user_id) REFERENCES User(user_id)
);

One-to-Many (1:N ) Relationship

  • Definition: A single record in one table can be related to one or more records in another table.

  • Example: A Customer table and an Orders table, where one customer can place many orders.

  • Use Case: Most common relationship type, used in scenarios like blog posts and comments, or authors and books.

One to Maney Code Example

Add a foreign key to the "many" side table that references the primary key of the "one" side table.

CREATE TABLE Customer (
customer_id INT PRIMARY KEY,
name VARCHAR(100)
);

CREATE TABLE Orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES Customer(customer_id)
);

Many-to-Many (M:N ) Relationship

  • Definition: Multiple records in one table are related to multiple records in another table.

  • Example: A Students table and a Courses table, where many students can enroll in many courses.

  • Implementation: Requires a junction table (also called an associative entity or bridge table) to link the two tables.

Many-to-Many Code Example

Create a junction table with foreign keys referencing the primary keys of both tables.

CREATE TABLE Students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);

CREATE TABLE Courses (
course_id INT PRIMARY KEY,
course_name VARCHAR(100)
);

CREATE TABLE StudentCourses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES Students(student_id),
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
);

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More