Harap posting sesuai dengan Kategorinya agar anggota yang lain mudah dalam bernavigasi!
0 Members and 1 Guest are viewing this topic.
...Tipe-nya ada yang int, ada yang long int. Pernyataan leosan88 memang betul. Kalau satu hari 1 juta transaksi memang SPK itu akan overflow dalam waktu singkat. Tapi terus terang saya belum cukup beruntung untuk punya client dengan 1 juta transaksi sehari Sejauh ini client saya yang punya transaksi insertion pada tabel child level terdalam paling banyak cuman 12,000 insertion per hari (itu jumlah terbesar dalam 2,5 tahun terakhir). Jadi kalau saya ambil 10,000 aja. Itu berarti field integer akan overflow dalam: 2 milyar++ / 12,000 = 166,666++ hari. Kita ambil aja 160,000.Kalau diasumsi client saya buka full 365 hari setaun, itu berarti overflow akan terjadi dalam waktu 160,000 / 365 = 438++ tahun.Dengan kata lain, saya sangat positif sekali overflow itu tidak akan pernah terjadi. Bahkan dengan transaksi 10 kali lipat itu pun, saya masih berani menjamin integritas database-nya. Jadi memang kembali lagi ke requirement-nya.Penggunaan SYS(2015) seperti post fish (hey ya fish... how's BEC?) juga punya kelemahan yang sudah di sampaikan di post itu juga. Penggunaan GUID cukup OK....Karena table sales dan detail_sales menggunakan GUID sebagai SPK, maka saat di upload, bisa langsung APPEND FROM tanpa kuatir conflict).
...SURROGATE + TIMESTAMP -> update cepet...misal gini:surrogate + timestamp -> index xCheckUpdate ...itu adalah updatable field, jadi harus di cek, sehingga kalau ada perubahan oleh user lain, perubahan itu tidak ditimpa oleh anda (sort of...) code diatas, ngecek nQty 2x
SURROGATE, SYS(2015), GUID, TIMESTAMP, INTEGER AutoInc dllmasih ada beberapa hal yang mengganggu pikiran saya, dan nggak bisamecahin sendiri.
- SYS(2015) sptnya gak cocok kalo multiuser. Walaupun akurat juga kalo cuma single user. Saya sudah test untuk create 500.000 unik ID dalam waktu 1,25 detik dan gak ada satu pun yg sama.
- Kalo GUID, (digenerate dari data TIME + NETWORK ADDRESS). Contoh Create GUID yang + NETWORK ADDRESS bgm ya ? Apa kalo masing-masing system terpisah (gak ada jaringan) lalu data digabungin GUID-nya juga pasti unik.
- TIMESTAMP. Bgm sih untuk generate TIMESTAMP kalo multi user(server time) dan tetap pake VFP-DBC. (Kalo MSSQL ada Timestampnya). Pernah coba dimasukin pada default field, tetap saja Time dari client . Pernah buat procedure sendiri dengan ambil time dari file yang dicreate diserver, tapi akurasinya cuma sampai 1 detik. Dalam 1 detik kan bisa lebih 1 client yang update.Misal sudah dapat generate TIMESTAMP sampai akurasi milisecond trus kalo cuma TIMESTAMP ini saja yang jadi PK bgm?
- INTEGER AutoInc, max 2 milyar ++. Bagaimana kalo data tiap hari +- 100-200 rb rec (Ada sekitar 150 kantor vertikal) tiap hari. Pak Foxy bisa optimis karena >400 tahun habisnya. Kadang data yang sudah diinsert harus dihapus untuk diupdate (proses delete/insert. Proses update gak mungkin karena data tidak centralized, key belum ada). Padahal Auto Key jalan terus. Dalam waktu singkat key habis.
timestamp bisa pake sys(2015) ato pake seconds() terserah anda
pokokya waktu anda ambil data, ambil timestampnya juganah kalo pas mau save, check timestamp tersebut, apakah sama?
gimana anda check apakah record ybs sudah berubah?kalau skenario VFP, anda bisa aja dengan LOCKING recordgimana kalau skenario SQL Server? SQL server itu cursor based, bukan record based? nah lo.