Cipta ID unik berdasarkan nilai dalam baris dalam MySQL
P粉541796322
P粉541796322 2023-12-27 10:06:21
0
1
391

Saya sedang mencipta aplikasi web untuk projek genealogi. Saya mahu setiap orang yang ditambahkan pada pangkalan data mempunyai ID unik berdasarkan 3 aksara pertama nama keluarga mereka (demi penjelasan, mari kita panggil ia "rentetan nama akhir"), dengan kenaikan automatik (dari 00001 mewakili setiap "rentetan nama keluarga" yang unik).

Contoh - Nama keluarga seseorang ialah "Smith". Rentetan nama akhir ialah SMI, dan kerana ia adalah rentetan nama akhir pertama "SMI", rujukan penuh ialah SMI00001. Nama keluarga orang lain ialah Hitam, jadi rentetan nama keluarga mereka ialah BLA, dan kerana mereka adalah orang pertama yang mempunyai rentetan nama keluarga BLA, rujukan mereka ialah BLA00001. Nama keluarga ketiga juga ialah Smith - mereka adalah orang kedua dengan rentetan nama keluarga SMI, jadi nombor rujukan mereka hendaklah SMI00002.

ID unik ini akan digunakan dalam URL orang untuk mencari orang dalam pangkalan data dan mewujudkan hubungan antara orang.

Saya tidak tahu bagaimana untuk menyelesaikan masalah ini secara logik.

Saya belum mencuba apa-apa lagi. Ini di luar imaginasi saya!

P粉541796322
P粉541796322

membalas semua(1)
P粉225961749

Kaedah ini adalah kasar, biasanya anda harus menggunakan auto-increment (nombor) pangkalan data atau auto-jana ID unik, seperti md5(time().'randomsalt'.$username).

Tetapi jika anda perlu menggunakan format XXX00000, anda memerlukan fungsi berikut:

  • Semak jika terdapat BLA00001 dalam pangkalan data
  • Jika ya, sila semak BLA00002 dsb.
  • Jika tidak, buat entri baharu

Ini akan menjadi sangat perlahan selepas beberapa ketika, dan setiap nama akan mempunyai maksimum 99999 peluang untuk wujud, selepas itu anda perlu menukar BLA kepada BL1, BL2, dsb.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan