Jump to content
GIGN Forum

Piramīdas Veidošana No Lietotājiem


mex
 Share

Recommended Posts

Tātad man ir neliela problēmiņa. Es taisu MLM (Multi Level Mārketing) sistēmu, kuras mērķis ir taisīt lielu piramīdu no lietotājiem. Es gribu lai ir 3 lietotāji zem lietotāja, kurš tos 3 ir uzaicinājis, respektīvi tie 3 lietotāji zemākajā līmeni, atkal var savākt kats pa 3 lietotājiem utt.

Tik tālu viss ir vienkārši.

Katrs lietotājs saņem naudu ko ir iemaksājis kāds no lietotājiem kas ir 12 līmeņus zem viņa (piramīdā tas ir 12 rindas zem tā lietotāja)

Vēl joprojāms viss ir vienkārši.

tagad sākas grūtākais (izdomāt kā veidot piramīdas struktūru)

vajadzētu tā, lai būtu viena liela piramīda no lietotājiem, kura nemainītu savu lietotāju atrašānās pozīciju pat pēc tam, kad ir izdzēsts kāds no lietotājiem kkur piramīdas vidū un tā vietā (tajā pašā pozīcijā) ir piereģistrējies jauns lietotājs.

Mana ideja:

jauna mysql tabula ar nosaukumu "piramīda", kurā ir iekšā tādi stabiņi

--------------------------------------

| lietotājs | rinda | kolonna |

--------------------------------------

| wormy | 1 | 1 |

| heart | 2 | 1 |

| kemito | 2 | 2 |

| polar | 2 | 3 |

| baronz | 3 | 1 |

utt, bet tad es izdomāju, ka bremzēs (reģistrācijas) brīdī kad rēķinās un skaitīs kur piramīdā tu atradīsies, ja tur būs vismaz 5 000 lietotāji :/

Tātad jautājums ir tāds: Kā uztaisīt piramīdas struktūru, lai traki nebremzētu un lietotāji nemainītu savu pozīciju piramīdā arī pēc dažu lietotāju dzēšanas un jaunu lietotāju reģistrācijas izdzēsto vietā ?

Itkā likās, ka nav nekas grūts, bet reāli iebraucot tēmā, sāku domāt savādāk. Jau 4 dienas domāju kā izveidot šo te piramīdas struktūru, bet vēl joprojām nevaru tikt pie rezultāta :/ Cik tizli, pirmā reize, kad prasu citiem lai palīdz izdomāt izveides ideju, algoritmu.

Ceru uz palīdzību :)

P.S. Nevaicājiet, kas tas par projektu vai kko tml, nesakiet kritiku, jo reāli tas nebūs Latvijas projekts :)

Edited by mex
Link to comment
Share on other sites

php/mysql nav parocīgs, lai apstrādātu datus, kas ir rekursīvi, ja vien tu nekesho iegūtos rezultātus... man darbā priekš viena projekta tika algots speciāls čalis, kas uzkodēja c++ standalone daemonu, kas izveido koka struktūru un apstrādā viņu... sql reāli ir tikai storage un tiek izmantots lai nolasītu datus palaižot daemonu kā arī veicot izmaiņas

Link to comment
Share on other sites

C++ šajā gadījumā nederēs :/ reāli šitai firmai būs pieejams tikai web hostings un tur tik ar mysq un php, bet domāju, ka ar php ar kkā norm var visu sarēķināt :)

bet kā ?

Link to comment
Share on other sites

moshk der shada ideja (neesmu nekads lielais sapratejs no visa bet ideja radas) piemeram registrejas peteris ar tiem rinas/kolonas cipariem 332 un tu uztaisi ka to ciparu (pedejo kas registrets) noglaba kada vieta, kuru izmantos pie nakamas registracijas, bet tas nekadi neatrisinas to fiichu lai cits ienjemtu dzesto vietu, tur jadoma kas dinamisks butu manuprat..

Link to comment
Share on other sites

Vispār ideja nav slikta. Domāju, ka to dzēsto lietotāju aizvietotšanu arī varētu tamlīdzīgi uztaisīt, ka kkur noglabā dzēsto lietotāju pozīcijas ciparus un reģistrējoties vnk tiek izmantoti šie cipari un izdzēsts dzēstā lietotāja pozīcija :) nu redzēs vai kkas sanāks :)

Link to comment
Share on other sites

Tak pieliec vienkārši vēl vienu kolonu, deleted, default 0. Dzēšot lietotāju, nedzēs viņu, bet laukā delete ieliec 1. Nekas, nekur napazudīs.

EDIT: Un, protams, attiecīgi nočeko pie ielogošanās, etc vai deleted!=1

Edited by X ID
Link to comment
Share on other sites

Katram lietotajam ir norade uz vina parent lietotaju ar indeksu.

Tadejadi tu viegli varesi atrast visus kada bernus 1maja limeni.

Tad, kad kads kaut ko iemaksa, tad izej pa visu 12limenu koku no lejas uz augsu un katram iedod pa naudinai.

Katram glaba vina dzilumu, lai nebutu katreiz jarekina no jauna.

Ka kads var ielist vidu cita vieta? Nu lai ari ka tas nav svarigi. Vienkarsi uzmet flagu izdzests, bet reali nedzes lauka.

Beefs

Link to comment
Share on other sites

Beef, to ko tu iepostoji, es nebīju prasījis :D jo reāli to jau biju izdomājis, vnk tā piramīda mani samulsināja :/ , bet pēdējais teikums ir tas pats ko X ID rakstīja ;)

X ID, paldies ;)

Edited by mex
Link to comment
Share on other sites

Man toč laikam kkas iet sviestā, vai arī patiešām šis ir grūts, bet ir jauna problēmiņa :/

damn, nekad nebiju tik tizli čakarējies ;(

89qg0w2ky416qttwxep.jpg

reku ir neliels fragments no piramīdas (5 līmeņi)

tur ir iekrāsots "3:2". pieņemsim, ka no tā 3:2 vajag atrast visus lietotājus kas ir zem viņa vismaz 2 līmeņus zemāk, t.i. vajadzētu lai iekrāsojas automātiski arī apviktie lauciņi, bet vajag tā lai viņš pats to izrēķina, un nomaiot to iekrāsojumu no 3:2 uz piem 3:1, atkal iekrāsotos visi kas ir zem tā 3:1

Nevaru izdomāt kā lai izrēķina tos zemākos lietotājus :/

Link to comment
Share on other sites

ko nozime tie divi cipari 1:1? Lieotaja numuri or what?

aaaa lol tu esi bots tev tacu teicu ka jataisa bet tev jau viss skaidrs protams muuahhaha

tatad tu maki atrast vienam limenim uz augshu, bet ne visiem?

PIRMKART - sitas ir svarigi - padoma, vai tev tas VISPAAR ir vajadziigs.

un OTRKAART - te ir divi varianti, ka atrast kada lietotaja visus zemlietotajus, bet vienigais atrais veids ir taisit multidimensionalu tabulu -

lietotajs - limenis - lietotajs - limenis

tabula svers nemera daudz, toties velak meklesana bus atra.

Beefs

Edited by 0xDEAD BEEF
Link to comment
Share on other sites

ko nozime tie divi cipari 1:1? Lieotaja numuri or what?

Tie cipari ir lietotāja vieta rindā un līmenis piramīdā

aaaa lol tu esi bots tev tacu teicu ka jataisa bet tev jau viss skaidrs protams muuahhaha

nu nez vai tiešām esmu bots, bet es taisīju tā kā biju izdomājis. Ja jau tu esi tik gudrs, tad pasaki kāpēc es vienkārši nenokačāju kādu jau gatavu MLM sistēmu un neizmantoju to, bet taisu pats savu ?

tatad tu maki atrast vienam limenim uz augshu, bet ne visiem?

Man nevajag meklēt līmeņus uz augšu

PIRMKART - sitas ir svarigi - padoma, vai tev tas VISPAAR ir vajadziigs.

un OTRKAART - te ir divi varianti, ka atrast kada lietotaja visus zemlietotajus, bet vienigais atrais veids ir taisit multidimensionalu tabulu -

lietotajs - limenis - lietotajs - limenis

tabula svers nemera daudz, toties velak meklesana bus atra.

1. nē, nemaz man tas nav vajadzīgs (vai tad citādi es būtu prasījis kādus jautājumus ?) :whistling:

2. patiesībā ir vairāk nekā 2 varianti kā to varētu izdarīt, bet palasi vēlreiz manu pēdējo otrā jautājuma postu (kurā tas jaut. acīmredzot bij šausmīgi apslēpts) un secini, vai esi uz to vispār atbildējis ? Es ar to jautājumu biju domājis, lai kāds palīdz man izdomāt matemātisku izteiksmi.

bet nu jau vairs varat necensties atbildēt uz manu super apslēpto jautājumu "kā lai izrēķina tos zemākos lietotājus?", jo izdomāju jau to vienkāršo izteiksmi, kuru es kā muļķis pirmstam nejēdzu izdomāt :blink: (dziļumam pieskaita 1 un vietas skaitu reizina ar 3, iegūst "9:3"; no vietas skaita atņem 1, iegūst "8:3"; no vietas skaita atņem 2, iegūst "7:3" utt.) protams saīsinot un nedaudz modificējot šīs darbības, tas nemaz nav gari un ar "while" varēšu automātiski atrast pārējos līmeņus, bet tas viss nenotiks tā, ka visu laiku to pārrēķinās un tāpēc domāju es iegūšu ātrumu bez ļoti lielas čakarēšanās. :lalala:

bet beef [RESPECT] tev, par palīdzēšanu un centies mani lūdzu nenorakt :thumbsup:

Link to comment
Share on other sites

Taisīju postu te, jo pirmais jaut. bija vairāk uz programmēšanas pusi, bet otro vnk iemetu tepat blakus (nezinu kāpēc)

To, ko gribēju izdarīt, jau izdarīju ;)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...