Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: MarkoMX poslato Mart 17, 2023, 19:11:08 POSLE PODNE

Naslov: Pitanje
Poruka od: MarkoMX poslato Mart 17, 2023, 19:11:08 POSLE PODNE
Pitanje/savjet: Pravim databazu i hocu da je podelim na dve table player_account i player_character. Da u jednu ide ID,mail,lozinka a u drugu skin, pol i tako dalje. Eh sad zanima me kako da spojim te dve tabele tj kako se to radi u PAWNu isto preko Join?
Opširnije:
Dodatno:
Naslov: Odg: Pitanje
Poruka od: Bit Frosty poslato Mart 17, 2023, 19:27:25 POSLE PODNE
Ovako, mozda neke stvari znas, mozda ne, ja cu napisati svejedno (jbg ima previse ljudi ovde da ne znaju ni principe programiranja a i ne zele da ih nauce).

Prvo ID je to sto ih povezuje. Tako da kad kreiras account kreiras i ID (obicno stavis Auto Increment i index u tabeli, i mysql sam kreira pa ti vrati taj id), kada insertujes skin, pol, itd, koristis ID accounta za koji to vazi.
E sad kada selectujes imas 2 opcije, prva je da posaljes dva queria, jedan da ti vrati ID za account, a drugi da select sta ti treba za character. Drugi nacin je kako si ti spomenuo JOIN opet koristeci ID.

[pawn]SELECT * FROM `player_account` JOIN `player_character` ON `player_account`.`id` = `player_character`.`ID` WHERE `player_account`.`mail` = %s[/pawn]
Napomena: Nisam test tako da query mozda ima greski u sintaksi, ali shvatas poentu.
Naslov: Odg: Pitanje
Poruka od: Borelli poslato Mart 17, 2023, 22:06:14 POSLE PODNE

//
Naslov: Odg: Pitanje
Poruka od: Borelli poslato Mart 17, 2023, 22:14:44 POSLE PODNE
Znači, u obe tabele mora biti ID, u prvoj to da bude AUTO INCREMENT i Primary key dok u drugoj da bude foreign key. A kada insertujem nešto u drugu tabelu player_character moram da koristim query koji si poslao da ih poveze
EDIT: Pisem sa main naloga, vratih sifru
Naslov: Odg: Pitanje
Poruka od: Bit Frosty poslato Mart 17, 2023, 22:19:08 POSLE PODNE
Ne query koji sam poslao iznad je select koji uzima sve iz obije tabele gde je ID isti.

Foreign key je ispravno da se stavi i ima dosta benefita ali nije obavezno.

Za insert ces morati 2 queria da saljes. Prvi u account pa da ti on vrati ID (koristis cache_insert_id da ucitas). Drugi naravno u character koristeci id koji si dobio.
Naslov: Odg: Pitanje
Poruka od: Borelli poslato Mart 17, 2023, 22:24:16 POSLE PODNE
Hvala na smernicama i tvom vremenu, shvatio sam pola ostalo cu nekako sam
Naslov: Odg: Pitanje
Poruka od: Slade poslato Mart 26, 2023, 00:59:45 PRE PODNE
Primarni i spoljni kljuc, join je svakako bolja opcija od 2 uzastopna querya.

U drugoj tabeli sa karakterima svakako imas primarni kljuc za tu tabelu, ali i spoljni kljuc tabele accounts. Jednostavno u sklopu selekovanja u accounts queryu joinaj sve redove characters tabele koje imaju id accounta od tog korisnika, i to je manje vise to, ostatak mozes handleovati u istoj funkciji.

Koristi se relacijama, u 2023 je sramota takvo nesto zaobici.
Naslov: Odg: Pitanje
Poruka od: Fr0z3n poslato Mart 30, 2023, 23:04:20 POSLE PODNE
Neaktivno, lock!