[share] Membentuk 2 Relasi Menjadi 3 Relasi di Database MySQL

Bismillahirrohmanirrohimmm…..

Hee, judul kali ini gw juga rada bingung…. soalnya ada kasus logicnya seperti ini:

Bos punya banyak bawahan, dan diatas bos punya atasan, dan si bos bisa melihat data yang di input si bawahan doank, dan siatasan bisa lihat seluruh bawahan/ bos dan si bawahan hanya bisa lihat datanya sendiri.

Okeh cukup. mudah mudahan sedikit nyambung! haa, jadi disana gw punya 3 akses role yang berbeda, inget ‘role‘ bukan user/pengguna. dalam kasus ini gw pake cukup 2 tabel, yang berelasi tanpa harus membuat 1 tabel lagi, jadi menggunakan fungsi mysql sendiri yaitu alias “AS” untuk tabel ‘user’, silahkan liat screensutnya neh:

jus

Nah, dah liat kan? kalo di SQL Query itu sangat mudah dilakukan dengan fungsi “AS” atau “Alias”, kurang lebih kuerinya kayak gini:


SELECT
users.username,
s_keluar.tgl_surat,
s_keluar.perihal,
s_keluar.maker,
s_keluar.jawaban,
Atasan.username AS Atasan,
users.brother_user
FROM
users
INNER JOIN s_keluar ON users.id = s_keluar.user_id
INNER JOIN users AS Atasan ON users.brother_user = Atasan.id
WHERE
Atasan.id = #customID

 

dan itu akan tampil, sedangkan gw coba pake grocerycrud, dan akhirnya dapet juga pake set_relation(); berikut ini source simplenya:

# http://stackoverflow.com/a/13757137
$id = $this->ion_auth->get_user_id();
$crud->set_relation('id','users','id', 'user_id IN (SELECT id FROM users WHERE id='.$id.')');

 

Okeh simpel kan? semoga bermangfaat kalo ada kasus yang sama seperti gw.

Have a nice day!

Leave a comment

5 Comments

  1. Reblogged this on Dinesh Ram Kali..

    Reply
  2. similiar

     /  12/09/2014

    gan saya sedang menghadapi masalah yang sama tetapi,saya belom paham bener tutorial yang agan jabarkan. kalo berkenan boleh tidak saya minta hasil jadi atau source code untuk pembelajaran saya terima kasih gan
    ini email saya nanang_soe@yahoo.com

    Reply
    • Bagian mana tidak faham? sourcecode full

      ” #http://stackoverflow.com/a/13757137
      $id = $this->ion_auth->get_user_id();
      $crud->set_relation(‘id’,’users’,’id’, ‘user_id IN (SELECT id FROM users WHERE id=’.$id.’)’); ”

      Penjelasan:

      1. $id = disini saya ambil id (PK) dari tabel users (menggunakan library ionauth).
      2. set_relation ini default dari si library grocerycrud, disini saya memilih 2 tabel users yang terhubung dengan tabel lainnya (disini tabel surat), sebetulnya seharusnya saya buat tabel lagi tapi berhubung tidak ada proses crud (hanya read) makanya saya gak buatin tabel.

      Maaf kalo ngejelimettt, setidaknya agan harus faham dasar dari RDBMS, nanti faham kok.

      Semoga tidak puas ya, nti tinggal tanya lagi ajah.

      Reply
  3. gan klo ada database seperti ini

    1. perkembagan sk
    -id_perkembagan
    – kode_kab
    -luas
    2. kabupaten
    – kode_kab
    – kode
    -kabupaten
    3. provinsi
    -kode
    -provinsi

    gmna ya gan ?

    lalu echo di phpnya seperti apa ya gan.?

    maaf nih gan masih newbe gan

    Reply
    • Terkantung… apa yang mau didapat dari data itu… mau jumlah provinsi atau kode provinsi tertentu dengan luas tertentu…

      btw outputnya yang dimaksud?

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: