MySQL Struktura
Pozdrav svima, skoro sam obratio pažnju na balkanske modove i primetio da za razliku od Engleskih/Španskih/Ruskih – kod nas se MySQL često ne koristi onako kako bi trebalo.
Šta mi se ne sviđa / gde grešite?
Mnogi misle da je poenta MySQL-a samo da “radi” kada prebace svoj mod iz Y_INI-a u SQL (posebno stariji modovi).
E tu grešite. Poenta MySQL-a je da bude **organizovan**, čitljiv, optimizovan i povezan preko **FOREIGN KEY** veza
(ON DELETE CASCADE, ON UPDATE CASCADE).
---
Kako Vi to radite (loš primer):
Uobičajeno vidim baze koje izgledaju ovako:
nešto_rp baza i u jednoj tabeli bukvalno sve:
ID, username, password, email, pol, država, godine, telefon, kartica, admin level, admin pin, gamemaster, i još 70 drugih polja.
Takva tabela je:
– pretrpana
– neorganizovana
– teža za održavanje
– sporija pri upitima
– potpuno nelogična za modernu SQL strukturu
---
Kako bi trebalo da izgleda (ispravan primer):
Nazovete bazu recimo: nesto_db
A unutra kreirate logične, povezane tabele:
player_account
(ID, username, password, mail)
player_character
(pol, država, godine, skin, religija i sve što je DIREKTNO povezano sa likom)
player_inventory
(pizza, sokovi, hrana, itemi…)
Sve ovo treba da bude povezano preko:
FOREIGN KEY (...) REFERENCES player_account(id)
ON DELETE CASCADE
ON UPDATE CASCADE
I umesto 5–7 query-a, koristi se **JOIN**, što znači:
SELECT * FROM player_account
JOIN player_character ON ...
JOIN player_inventory ON ...
WHERE id = ?
→ **1 query**, čisto, brzo, efikasno.
---
Zašto ovako?
– Lako za održavanje
– Učitava se samo ono što treba
– SQL već ima svoje logičke uslove
– Ako igrač **nema ranac**, ne treba uopšte učitavati inventory
– Sve je brže, urednije i profesionalnije
– Ovako rade ENG, RU, ES community modovi već godinama
---
Korisni linkovi:
https://www.guru99.com/database-normalization.html ili http://agiledata.org/essays/dataNormalization.html
https://support.office.com/en-us/article/database-design-basics-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5
https://www.w3schools.com/sql/sql_join.asp
---
Napomena (matematika + SQL):
Sve ovo je suštinski ono što ste učili iz matematike –
**kreiranje unija skupova** (ko nije prespavao časove 😉).
---
P.S. Naučite da koristite “Designer” opciju u PhpMyAdmin-u (poslednja opcija).
Tu najlakše pravite FOREIGN KEY-eve i vizuelno sređujete vezu tabela – što je ovde OBAVEZNO.
Dok ne prestanete da gledate samo “front” i ne otvorite svoj “back-end”,
od vas skriptera neće biti ništa ozbiljno.