original post-nya saya apus ya :P .. Gimana kalau desain table-nya seperti ini:
tbl_barang : - id_barang - nama_barang - harga contoh : <"BRG-0001", "Pasta Gigi, 2000> <"BRG-0002", "Minyak tanah", 4000> tbl_kantor : - id_kantor (pakailah natural key) - nama_kantor contoh : <"PUSAT", "Kantor Pusat">, <"CAB-DPS", "Cabang Denpasar">, <"CAB-BDG", "Cabang Bandung"> tbl_transaksi_master : - id_transaksi (composite key dengan id_kantor) - id_kantor (composite key dengan id_transaksi) - tanggal - customer Contoh : <"TRM-00001", "PUSAT", "2008-12-02", "JOKO">, <"TRM-00001", "CAB-DPS", "2007-11-01", "JONI"> tbl_transaksi_detail - id_transaksi_detail (di-generate dengan pola tertentu) - id_barang - kuantitas - harga - total Contoh : <"TRD_PUSAT_00001", "BRG-0001", 4, 2000, 8000>, <"TRD_PUSAT_00001", "BRG-0002", 3, 4000, 12000>, <"TRD_CAB-DPS_00001", "BRG-0002", 5, 4000, 20000> Dengan desain seperti itu, : 1. Walau digabungkan, data tidak akan tumpang tindih 2. Data lebih human-readable 3. Untuk manipulasi data, dapat dilakukan dengan permainan query atau dapat juga dilakukan dengan permainan kode program. Misalnya, untuk mengambil data transaksi nomor xxxxx di kantor yyyyy dapat dilakukan dengan mencari semua rekord di table detail yang id_transaksi_detail-nya memenuhi pola TRD_yyyyy_xxxxx Untuk report, usahakan buat table temporary/view sedemikian rupa sehingga table tersebut dalam format 0nf (tidak ternormalisasi sama sekali).