conditional relation: 1 parent, 2 child

225 views
Skip to first unread message

Achmad Mardiansyah

unread,
Aug 22, 2013, 10:11:17 PM8/22/13
to mysql-i...@googlegroups.com
salam semua,

saat ini saya mempunyai 1 tabel parent yaitu tabel_customer, yang mempunyai field customer_id sebagai primary key.
nah customer yang saya miliki ini ada 2 tipe: perorangan dan perusahaan dimana masing-masing tipe customer mempunyai atribut unik sendiri-sendiri.
nah karena tipe customernya berbeda, maka saya berinisiatif untuk membuat 2 tabel child, yaitu:
- tabel_customer_individu
- tabel_customer_perusahaan
dimana pada tiap tabel diatas (individu dan perusahaan) mempunyai field customer_id yang merujuk ke tabel_customer.
saat ini yang bikin repot adalah ketika join tabel customer dan lainnya karena harus cari tahu dulu apakah customer tersebut individu atau perusahaan.

ada yang punya pengalaman yang sama dengan saya?
bagaimana mengatasinya?

terima kasih,

Achmad mardiansyah

kee permana

unread,
Aug 22, 2013, 10:22:54 PM8/22/13
to mysql-i...@googlegroups.com

Kalo digabung aja gimana om?

Inline image 1


tipe A : individu
tipe B : company

Semoga membantu.

Regards,
Rifki

2013/8/23 Achmad Mardiansyah <a.mard...@gmail.com>

--
Untuk memposting, kirim email ke mysql-i...@googlegroups.com |
Untuk unsubscribe, kirim email ke mysql-indones...@googlegroups.com | Arsip milis : https://groups.google.com/d/forum/mysql-indonesia?hl=id
---
Anda menerima pesan ini karena Anda berlangganan grup "MySQL Indonesia" dari Grup Google.
Untuk berhenti berlangganan dan berhenti menerima email dari grup ini, kirim email ke mysql-indonesia+berhenti berlan...@googlegroups.com .
Untuk opsi lainnya, kunjungi https://groups.google.com/groups/opt_out.

tabel.jpg

Achmad Arwan

unread,
Aug 22, 2013, 10:43:56 PM8/22/13
to mysql-i...@googlegroups.com
Kalau digabung itu tidak bentuk normal karena ada atribut yang kosong. Sebaiknya di pisahkan saja.


2013/8/23 kee permana <kee.p...@gmail.com>
tabel.jpg

Fajar A. Nugraha

unread,
Aug 22, 2013, 10:49:50 PM8/22/13
to mysql-i...@googlegroups.com
2013/8/23 Achmad Mardiansyah <a.mard...@gmail.com>
salam semua,

saat ini saya mempunyai 1 tabel parent yaitu tabel_customer, yang mempunyai field customer_id sebagai primary key.
nah customer yang saya miliki ini ada 2 tipe: perorangan dan perusahaan dimana masing-masing tipe customer mempunyai atribut unik sendiri-sendiri.
nah karena tipe customernya berbeda, maka saya berinisiatif untuk membuat 2 tabel child, yaitu:
- tabel_customer_individu
- tabel_customer_perusahaan
dimana pada tiap tabel diatas (individu dan perusahaan) mempunyai field customer_id yang merujuk ke tabel_customer.
saat ini yang bikin repot adalah ketika join tabel customer dan lainnya karena harus cari tahu dulu apakah customer tersebut individu atau perusahaan.


Kalo atributnya individu sama perusahaan beda, ya mesti gitu.

Paling kalo mau bikin satu tabel lagi, mapping dari customer_id ke ke tipe customer. Create dulu manual dari data yang udah ada, trus untuk updatenya bisa pake trigger sehingga setiap ada penambahan/perubahan ke tabel_customer_individu/perusahaan, si tabel mapping itu bakal update juga.

-- 
FAN

Aris Setyawan

unread,
Aug 23, 2013, 4:09:47 AM8/23/13
to mysql-i...@googlegroups.com
Ane sih seringnya pakai MySQL, cm kadang mmg harus pakai postgre.
Nah di postgre, itu bisa inheritance kayak tipe data ini.

Achmad Mardiansyah

unread,
Aug 23, 2013, 6:58:34 AM8/23/13
to mysql-i...@googlegroups.com
kebetulan sih kita pakai postgres.
pernah baca inheritance di postgres cuman belum ngerti detilnya.

bisa cerita tentang inheritance ini mas? udah dipake di produksi.

salam,

Achmad Mardiansyah

Aris Setyawan

unread,
Aug 23, 2013, 8:42:49 AM8/23/13
to mysql-i...@googlegroups.com
> kebetulan sih kita pakai postgres.

nah tu, kebetulan sekali.

> pernah baca inheritance di postgres cuman belum ngerti detilnya.
> bisa cerita tentang inheritance ini mas? udah dipake di produksi.

Semua fitur yg ada di stable release postgresql, sudah production ready.

Contohnya (dr manual postgres), seperti ini. Ada dua table: "cities"
dan "capitals", pada table "capitals" ada satu extra colum
driabndingkan table "cities", yaitu kolom "state" (kode negara, dimana
dia menjadi ibukota).

Berikut contoh DDL, dan query nya:

DDL:

CREATE TABLE cities (
name text,
population real,
altitude int -- (in ft)
);

CREATE TABLE capitals (
state char(2)
) INHERITS (cities);

Query 1:

SELECT name, altitude
FROM cities
WHERE altitude > 500;

name | altitude
-----------+----------
Las Vegas | 2174
Mariposa | 1953
Madison | 845
(3 rows)

Query 2:

SELECT name, altitude
FROM ONLY cities
WHERE altitude > 500;

name | altitude
-----------+----------
Las Vegas | 2174
Mariposa | 1953
(2 rows)

Note:
a. Jika query dr parent table (tanpa ONLY), maka semua child tables jg
ikut terselect (g perlu join atau bikin view).
b. JIka dengan ONLY, hanya khusus table parent saja
c. tentu sj kita bisa query child tables juga

rafi randoni

unread,
Aug 25, 2013, 11:38:24 PM8/25/13
to mysql-i...@googlegroups.com
pake case kaya'a bisa om, tp saya pake mysql sih . . . :)



2013/8/23 Aris Setyawan <aris...@gmail.com>

Aris Setyawan

unread,
Aug 26, 2013, 12:04:23 AM8/26/13
to mysql-i...@googlegroups.com
Untuk variasi parent dan child yg sedikit, pakai mysql gpp.
Cm ane dl pernah nemu kasus, yaitu tabel untuk menyimpan syarat2 perizinan.
Dimana variasi jumlah izinnya mencapai 30-an (IMB, TDP, SIUP, dst..),
dan masing2 table dengan yg lain terkadang cuma beda bbrp kolom saja.
Nah ini agak sudah dimanage pakai cara mysql.
Reply all
Reply to author
Forward
0 new messages