Selama ini kita melihat bahwa contoh-contoh script aplikasi yang menggunakan MySQL sebagai database senantiasa menggunakan tipe data INT dengan menerapkan ketentuan autoincrement untuk membuat ID unik.
Patut kita ketahui bahwa Primary Key dibedakan menjadi dua jenis yaitu Natural Primary Key dan Surrogate Primary Key, pemilihan INT autoincrement menjadi primary key dikategorikan sebagai Surrogate Primary Key, lantas apa pengertian Surrogate primary key tersebut ? berikut penulis kutip dari wikipedia :
Surrogate menuurut Hall, Owlett and Todd (1976)
A surrogate represents an entity in the outside world. The surrogate is internally generated by the system but is nevertheless visible to the user or application
Apabila diterjemahkan secara bebas surrogate PK merupakan primary key yang di-generete oleh sistem tetapi tetap terlihat oleh pengguna dan aplikasi, dalam hal ini contohnya seperti field id_transaksi pada tabel penjualan, atau field id_simpanan pada tabel simpanan , dan field lain yang tidak memiliki arti secara natural seperti misal No KTP, NO Induk Siswa dimana kedua contoh tersebut nilianya berarti dan terbaca oleh pengguna.
Pada prakteknya sampai dengan MySQL versi 4 dengan engine MyISAM untuk kebutuhan Surrogate Primary Key menggunakan INT sebagai tipe data yang bersifat Auto Increment, dan ini, hal ini memiliki kekurangan diantaranya
- Ketika aplikasi dan database didistribusikan ke setiap kantor cabang maka akan terdapat primary key yang sama antar kantor cabang dan akan menjadi masalah ketika digabung di kantor pusat.
- Masalah berikutnya ketika database MySQL diimport ke RDBMS lain (misal Postgree, Oracle, atau yang lainnya) maka jika menggunakan tipe INT dengan atribut auto increment akan timbul masalah karena tipe data tersebut belum tentu sama dengan RDBMS tujuan
Untuk menghindari kedua masalah diatas maka MySQL versi 5.x menyediakan tipe data UUID (Universally Unique Identifier) dan akan berlaku ketika engine yang digunakan adalah INNODB, UUID sendiri merupakan tipe data char dengan lebar data 36 character. jumlah maksimum UUID yang dapat dibuat adalah 2128, yang merupakan angka yang sangat besar sehingga kemungkinan angka yang dibuat dua kali mendekati nihil.
Sebagai contoh dari penggunaan UUID akan dibahas secara terpisah, baik contoh penggunaan di Native PHP maupun menggunakan Framework CodeIgniter.
Post a Comment