Laman web memerlukan modul berfungsi untuk menjemput rakan-rakan Prosesnya adalah seperti berikut:
Pusat pengguna menjana pautan jemputan untuk setiap orang (A), dan kemudian selepas jemputan (B) mengklik untuk mendaftar, ID A dimasukkan sebagai teg selepas medan pendaftaran B.
Pada masa ini, kaedah ini boleh mengira senarai rakan yang dijemput oleh setiap orang, tetapi akan ada masalah berikut pada masa hadapan:
Apabila jemputan B membuat pesanan buat kali pertama, A akan diberikan 10% daripada ganjaran mata Jika ia bukan pesanan pertama, tidak akan ada ganjaran
(Ini adalah apa yang saya fikir dengan cara saya sendiri. Apabila. setiap pengguna membuat pesanan, dia mesti terlebih dahulu menentukan sama ada ada Pengguna A yang lebih tinggi, jika tidak ada, buat pesanan terus Jika ada pengguna A yang lebih tinggi, dia mesti menilai semula sama ada untuk membuat pesanan untuk kali pertama , dan kemudian tambah mata kepada atasan, dan pada masa yang sama buat pesanan untuk pengguna B)
Masalahnya ialah kaedah bodoh saya perlu menilai pesanan pertama untuk setiap pesanan yang dibuat oleh setiap pengguna Saya rasa ini terlalu rumit dan terdedah kepada masalah Saya tertanya-tanya jika tuan mempunyai idea pengoptimuman
Saya rasa ia boleh dilakukan seperti ini:
Hubungan rakan: Anda boleh membuat jadual berasingan,
Jadual hubungan rakan
, yang menyimpan dua medanuid
(ID pengguna),contact_uid
(ID rakan berkaitan)好友关系表
,里面存两个字段uid
(用户ID),contact_uid
(关联好友ID)下单是否是首次并增加推荐好友积分操作:可以在用户相关表增加个是否下过单的字段(楼上也有提过),默认为0为没有下过单,每次下单都会先查询这个字段,如果是
1
1
, logik pesanan biasa akan diikuti jika ia adalah 0, ia bermakna pesanan itu tidak pernah diletakkan, dan kemudian logik yang anda akan gunakan akan dilaksanakan, iaitu sama ada pengguna mempunyai pengesyor Memproses peningkatan mata untuk pengesyor🎜🎜 🎜Jangan lakukan ini, ia akan menjejaskan prestasi.
Mata statistik dikira setiap pagi.
Anda boleh mencadangkan jadual ini mempunyai id, id B, id C dan keadaan beli medan Nilai keadaan beli boleh menjadi 1 atau 0. 0 bermakna ia bukan pembelian pertama, dan 1 bermakna ia adalah pembelian pertama.
Tambah medan secara langsung, sama ada anda pernah membuat pesanan sebelum ini, nilai lalainya ialah 0. Bagaimanapun, maklumat pengguna akan diperolehi apabila membuat pesanan, anda boleh menilai sama ada ia sama dengan 0 untuk mengetahui sama ada pesanan pertama. Dari segi mata, jika anda bimbang tentang prestasi, anda boleh mempertimbangkan untuk menyimpannya dalam redis dan mengubah suai pangkalan data pada masa yang ditetapkan.
Saya rasa idea itu okey
Satu perkara yang perlu dinyatakan, mata ganjaran sepatutnya selepas pesanan selesai, bukan ketika pesanan dibuat.
Cukup tambah medan pada jadual pengguna untuk menunjukkan bilangan pesanan yang telah disiapkan secara sejarah Jika permintaan berubah kemudian, mata untuk N kali pertama akan menjadi mudah. Dan biasanya proses membuat pesanan atau melengkapkan pesanan memerlukan pertanyaan jadual pengguna, yang tidak rumit.