Database relasional menyimpan data di beberapa tabel yang saling berhubungan melalui foreign key.
Jenis relasi:
| Relasi | Contoh |
|---|---|
| One-to-Many | 1 User punya banyak Post |
| Many-to-One | Banyak Post milik 1 User |
| Many-to-Many | User bisa punya banyak Role, Role bisa punya banyak User |
| One-to-One | 1 User punya 1 Profile |
Foreign Key:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL, -- Foreign key
title TEXT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id)
);
user_id di tabel posts mereferensi id di tabel users.
ERD (Entity Relationship Diagram):
users posts
├── id ◄──────── user_id
├── name ├── id
└── email ├── title
└── content
Kenapa tidak simpan semua di satu tabel?
- Menghindari duplikasi data (nama user diulang di setiap post)
- Konsistensi — update nama di satu tempat saja
- Fleksibilitas — mudah menambah relasi baru