> For the complete documentation index, see [llms.txt](https://rafli-ramadhan.gitbook.io/golang-example-code-by-topic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rafli-ramadhan.gitbook.io/golang-example-code-by-topic/golang/golang-dan-database/sql-relation.md).

# SQL Relation

## One To One

Satu baris data di tabel A berhubungan dengan satu baris data di tabel B. Contohnya misal ada 1 baris data di tabel User yang memiliki informasi 1 baris data dari tabel Status.

<figure><img src="https://1578455751-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F09pucuEBc5BTaaur3uoo%2Fuploads%2FyoZV37WBmrI1NLyek11D%2Fone%20to%20one.png?alt=media&amp;token=708723ca-e2d7-42b5-9113-6452107dbd71" alt=""><figcaption></figcaption></figure>

## One To Many

Satu baris data di tabel A berhubungan dengan beberapa baris data di tabel B. Contohnya misal pada Tabel Item\_Penjual berikut terdapat 2 baris data dengan Id\_Penjual sama dengan 1.

<figure><img src="https://1578455751-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F09pucuEBc5BTaaur3uoo%2Fuploads%2Fbtm0OtsaCM0YWXqvaUBa%2Fone%20to%20many.png?alt=media&amp;token=a5dfe2a5-4bf6-4534-86b8-3aa87cadcc71" alt=""><figcaption></figcaption></figure>

## Many to Many

Beberapa baris data di tabel A berhubungan dengan beberapa baris data di tabel B. Untuk kasus tabel many to many diperlukan tabel perantara antara tabel A dan B. Contohnya misal ada data user yang membeli beberapa item yang kemudian disimpan dalam Tabel User\_Item, maka beberapa baris di Tabel A bisa dikatakan berhubungan dengan beberapa baris di Tabel B.

<figure><img src="https://1578455751-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F09pucuEBc5BTaaur3uoo%2Fuploads%2FjTrvPkCozAFFK9cJXuES%2Fmany%20to%20many.png?alt=media&amp;token=e7781f9e-36fc-4a81-a7d4-e3e99f7293c8" alt=""><figcaption></figcaption></figure>

## Has Many and Belongs To

*Has many* merupakan istilah yang dapat digunakan untuk mendiskripsikan relasi one to many (1:n) dan many to many (n:n). Sementara belongs to dapat digunakan untuk mendiskripsikan relasi one to one (1:1) dan many to one(n:1). Sebagai catatan untuk many to one merupakan kebalikan dari one to many.

Referensi :

{% embed url="<https://medium.com/@fahmisyaifudin35/relasi-tabel-database-one-to-one-one-to-many-many-to-many-44010f703f57>" %}

{% embed url="<https://softwareengineering.stackexchange.com/questions/152731/what-is-the-main-difference-between-has-many-and-belongs-to-relationship-in-mysq>" %}
