Share this topic on FacebookShare this topic on MySpaceShare this topic on Del.icio.usShare this topic on DiggShare this topic on StumbleUponShare this topic on TwitterShare this topic on GoogleShare this topic on Yahoo

Author Topic: [TIPS] Membuat aplikasi sebagai profesi (secara profesional)  (Read 9928 times)

0 Members and 1 Guest are viewing this topic.

kakbud

  • Guest
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #30 on: March 01, 2006, 09:31:43 AM »
Quote from: "foxy"
...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).


Quote from: "fish"
...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 dll
masih ada beberapa hal yang mengganggu pikiran saya, dan nggak bisa
mecahin sendiri.

- SURROGATE PK/SPK katanya memang preference masing-masing mau pake ato tidak. Sekarang kalo saya mau pake, misal karena reply Pak TAZ tahun 2005 lalu yg nyaranin pake SPK. Berhubung kalo pake NIP/EmpID sebagai PK akan konflict bila seorang pegawai yang telah dimutasi kembali lagi tidak bisa dientry karena PK violation sebelum tabel tsb di pack. (Misal kalo pack tidak mungkin , krn share 24 jam)
SPK sebaiknya pake apa?

-  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.

fish

  • Guest
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #31 on: March 01, 2006, 01:27:24 PM »
Quote from: "kakbud"

SURROGATE, SYS(2015), GUID, TIMESTAMP, INTEGER AutoInc dll
masih ada beberapa hal yang mengganggu pikiran saya, dan nggak bisa
mecahin sendiri.


gampang mas, dibanting wae lak pecah, minimal sentet... hehehe...

Quote from: "kakbud"
-  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.


1 komputer generate memang tidak sama.
coba anda pake 2 komputer ato lebih, generate pada saat yang sama, pastikan jam komputer ambil dari network biar pada sinkron pasti ada yang dobel

Quote from: "kakbud"
- 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.


itu udah ada sor-codenya dari saya.
GUID itu pasti unik mas, karena tergantung dari pc masing2, biarpun generate berjut-jut guid pasti unik, DIJAMIN
contoh guid: {764FE7E3-A470-11D6-9500-00065B874123}
gampangane gini mas, hex: 1 byte = 256 karakter
berarti: 256^16 (16 = guid = 16 karakter)
hasil dari calculator= 3.4028236692093846346337460743177e+38
banyak kan?

Quote from: "kakbud"
- 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?


mas, bayangkan timestamp itu fingerprint
namanya cuma timestamp, tapi artinya sebenernya macem2 :
MD HASH, CRC dll dll dll
timestamp bisa pake sys(2015) ato pake seconds() terserah anda
pokokya waktu anda ambil data, ambil timestampnya juga
nah kalo pas mau save, check timestamp tersebut, apakah sama?
kalo ga berarti : data sudah diobok2 ama pelaku yang laen
kalo sama ya selamat anda dapat ting-ting hehehe


Quote from: "kakbud"
- 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.


nah makanya ga usah pake autoint kalo transaksi data gede hehehe... gampang tho?

kakbud

  • Guest
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #32 on: March 01, 2006, 02:25:08 PM »
Quote
timestamp bisa pake sys(2015) ato pake seconds() terserah anda



Cara mendapat return value sys(2015)/seconds() PC lain/server dari
PC client bagaimana ya (untuk native DBC). Diisi pada default field pada tabel yang disimpan pada PC lain hasilnya kan tetap client time. bisa dobel key

Quote
pokokya waktu anda ambil data, ambil timestampnya juga
nah kalo pas mau save, check timestamp tersebut, apakah sama?



Kalo pake tableupdate(1,.F.) ? Bila data sudah berubah/diubah user lain kan gak bisa diupdate.

fish

  • Guest
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #33 on: March 01, 2006, 04:02:33 PM »
mas kakbud

surrogate key = harus unik
timestamp = dobel boleh

karena cuma buat ngecek data sudah berubah belum, jadi ada dobel ya biarin aja, pokoknya mau edit pas save, timestamp laen ya berarti udah berubah
kayanya juga sudah saya singgung dari pertama saya sebut timestamp... 8-|
Quote
gimana anda check apakah record ybs sudah berubah?

kalau skenario VFP, anda bisa aja dengan LOCKING record
gimana kalau skenario SQL Server? SQL server itu cursor based, bukan record based? nah lo.




kalo anda bicara dbc, ya ga usah pake timestamp aja bisa kok, soalnya native vfp bisa rlock(), curval(), oldval() dan kroni2nya

kalo sql server? kan ga ada rlock() nya?
alternatif ya pake tstamp

gitu lho, paham? awas kalo ga hehehe...

kakbud

  • Guest
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #34 on: March 02, 2006, 07:53:44 AM »
Paham-paham  :oops: , tapi ... (apa lagi nih?  :evil: )

Saya salah memakai istilah untuk Timestamp, maksud saya Sys(2015)/systemtime itu yang akan dijadikan Surrogate PK (bukan untuk TimeStamp spt pada MSSQL) daripada pake AutoInc, karena sifatnya yang gak ada habis.

Ternyata sulit juga mencari calon SPK untuk DBC, kec AutoInc ato bikin sendiri.


TableUpdate(0/1,LForce=.F.) sptnya bisa juga untuk mengecek ada tidaknya perubahan oleh user lain, termasuk Remote Data (khususnya CA, yang lain blum tahu)

Offline taz

  • Administrator
  • Hero Member
  • *
  • Thank You
  • -Given: 10
  • -Receive: 31
  • Posts: 2503
  • Do SEARCH berfore post guys!
    • http://fox-id.com
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #35 on: March 02, 2006, 04:03:37 PM »
wekekeke
beda style lagi dengan saya
timestamp hampir selalu saya gunakan TAPI tidak sebagai SPK, tetapi justru masuk ke 2 field. satufield untuk data masuk I, field kedua, perubahan data terakhir
data tersebut saya masukin ke tabel LOG, untuk mengetahui / me-trace jika ada kesalahan entri data dari operator.  jadi tidak saya gunakan sebagai SPK (bukan SPG loh wekekekeke)
- Fox-id.org is KiOSS Project exclusive member -


Offline febyen

  • Junior Member
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 109
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #36 on: March 08, 2006, 12:42:48 AM »
wah yang dibahas coding semua ya,, mbok masalah komersilnya dong bagaimana memberikan harga untuk software yang akan dibangun, dengan pertimbangan apa saja?

Hidup Independent Software Developer................Foxy

Online foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Thank You
  • -Given: 11
  • -Receive: 37
  • Posts: 1278
    • Foxy Land
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #37 on: March 09, 2006, 09:00:19 AM »
hi febyen:

money matters comes last. ;) But, i promise that i'll get into that in part 3 of my article.

:)
Foxy
Some new posts...

This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline a_gunawan

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 16
[TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #38 on: March 10, 2006, 11:02:54 AM »
terimakasih untuk semua jadi nambah wawasan nih..
Untuk pak foxy
bagaimana cara ? membuat surrogate key supaya unik kalau pake native dbc di jaringan ? apa harus pake referen tabel ? maklum masih belajar

Thanks  :-D

Offline ronypuddzell

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 6
Re: [TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #39 on: June 27, 2010, 10:29:32 PM »
Thx Master Fox, tapi masih belum bs nih....
 :happy2:

Offline davidmustakim

  • Fox-id M.V.P
  • Hero Member
  • *
  • Thank You
  • -Given: 1
  • -Receive: 22
  • Posts: 4599
Re: [TIPS] Membuat aplikasi sebagai profesi (secara profesional)
« Reply #40 on: June 28, 2010, 02:06:56 PM »
nggak ikutan dari 2006 sih