pertama design table kamu
salah. Satu field sebuah table hanya memiliki satu foreign key dari table lain. Tapi kamu buat adalah field username table tb_artikel memiliki dua foreign key di dua table berbeda yaitu , table tb_guru dan tb_admin.
Dari mana kamu bisa tahu kalau nilai yang ada di field username tb_artikel berasal dari tb_guru atau tb_admin?. Saya kasi contoh datanya seperti ini:
tb_guru:
_________________________________
| username | nama_lengkap |
---------------------------------
| andi | Andi wiguna |
---------------------------------
| guna | Gunawan |
---------------------------------
tb_admin:
_________________________________
| username | nama_lengkap |
---------------------------------
| andi | Suwandi |
---------------------------------
| guna | Gunadi Dharma |
---------------------------------
tb_artikel:
_________________________________________________________
| id_artikel | judul_artikel | username |
---------------------------------------------------------
| 1 | Artikel no 1 | andi |
---------------------------------------------------------
| 2 | artikel no 2 | guna |
---------------------------------------------------------
| 3 | artikel 3 | andi |
---------------------------------------------------------
| 4 | artikel 4 | guna |
---------------------------------------------------------
coba perhatikan field username pada table tb_artikel, andi itu adalah Andi wiguna apa Suwandi? Bagaimana kita tahu dan menjawab pertanyaan itu? Maka itulah saya katakan tabel kamu salah. Seharusnya hanya ada satu table user dimana user memiliki tipe, seperti ini:
tb_user
username
nama_lengkap
tipe_user
tb_artikel
id_artikel
judul_artikel
username
jadi nilai dari
tipe_user bisa ADMIN atau GURU.
tipe_user membedakan apakah ia guru atau admin, dan jika ada penambahan
tipe_user misalnya, SISWA tidak perlu menambahkan table baru tb_siswa.