Am făcut aproximativ așa cum a fost descris adubovskoy, deși atunci când am început să fac, el mi-a spus același lucru și a sfătuit. Doar esența mea conține câmpuri. Încă puteți facilita opțiunea. Dulap groaznic cu JSon. Opțiunea cea mai deșteaptă este tabelul propriu, dar aici este complet plin de cod, fără clicuri. Îmi scriu interfața cu utilizatorul, etc.
În versiunea mea, pe sfaturile adubovskoy, dar cu câmpurile sunt astfel, am luat:
Apoi am creat esența "Tranzacției", care avea următoarele domenii:
- Tip de tranzacție (0 - scădere, 1 - completare - selectare text).
- Valoarea tranzacției (zecimal).
- Relația cu utilizatorul (entitatereferență) căreia îi este legată tranzacția.
- Descrierea tranzacției (pentru interfețele utilizatorilor).
- Descrierea tehnică (pentru administrator, etc. numai administratorul vede acest lucru).
- Și caseta de selectare "Plată reală". Nu afectează nimic, este doar făcut pentru a distinge ceea ce este completat din camera de administrare și ceea ce a venit, să zicem, de la Yandex.Money.
Apoi, suma este foarte ușor de protejat. Facem o solicitare și tragem toate tranzacțiile utilizatorului. Calculăm valoarea acestor tranzacții și obținem soldul actual.
Pentru optimizare, cred că este logic să cacheze balanța. Și închideți un cârlig la actualizarea \ adăugând o nouă tranzacție și resetați cache-ul de echilibrare de la utilizatorul căruia îi aparține tranzacția, astfel încât să o actualizeze.
Pentru a transfera între utilizatori, faceți un formular, suma și cine. Și executați tranzacția. În general, există, în general, cea mai ușoară parte.