Zapadni Balkan SA-MP

PAWN | SKRIPTANJE => SAMP Tutorijali => Topic started by: fx3ee.pwn on November 17, 2025, 10:47:33 PM

Title: [TUTORIAL] MySQL Struktura
Post by: fx3ee.pwn on November 17, 2025, 10:47:33 PM
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:

Code: You are not allowed to view links. Register or Login
FOREIGN KEY (...) REFERENCES player_account(id)
    ON DELETE CASCADE
    ON UPDATE CASCADE

I umesto 5–7 query-a, koristi se **JOIN**, što znači:

Code: You are not allowed to view links. Register or Login
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.


SimplePortal 2.3.7 © 2008-2026, SimplePortal