Szerintetek így jó e (MySQL)? A többi lenn.
Nem jó. Mindenképpen kell egy ID.
int (11) auto_increment
#1
Ha meg is magyaráznád megköszönnénk.
Bocsi. igazad van.
Egy esetleges felhasználónév váltásnál az összes korábbi kapcsolat megszakad mert olyan mező volt az egyedi kulcs ami nem arra való.
Például a JOIN is sokkal gyorsabban lefut egy egész számban mint karakterláncban.
Tudomásom szerint az indexelés is gyorsabb egy auto_increment int mezőn.
Szintén gyorsabb/egyszerűbb két int értéket hasonlítgatni egymáshoz mint karakterláncot.
Lehet hogy ez a jelenlegi egyszerű weboldalán nem fontos és tudom hogy elmenne úgy is ha a felhasználónév az egyedi mező de egyszerűen nem arra találták ki. Úgy van optimalizálva az SQL hogy legyen benne egy id mező ami egy egész szám. Minden táblába kell egy id hogy könnyen gyorsan kapcsolni lehessen őket egymáshoz. 4-5 tábla összekapcsolásánál ahol már több tízezer esetleg több millió rekord van ott már sok időt lehet nyerni.
Annyit hozzátéve, hogy az A_I-t (Auto Increment, automatikus növelés) érdemes bekapcsolni, ugyanis így mindig egyel nagyobb értékű lesz automatikusan, amikor új adatokat szúrsz be a táblába (ebben az esetben amikor regisztrál valaki). Így a kódban sem kell neked külön beszúrni.
És ne használj speciális karaktereket az oszlopok elnevezésénél!
#3
Ehhez lenne némi hozzáfűznivalóm.
Amennyiben a regisztrációnál biztosítva van hogy nem lehet 2 ugyanolyan felhasználónév, tehát ellenőrzi hogy van e már ilyen akkor elhagyható az id és nyugodtan lehet a felhasználónév is elsődleges kulcs.
"Egy esetleges felhasználónév váltásnál az összes korábbi kapcsolat megszakad mert olyan mező volt az egyedi kulcs ami nem arra való."
Ezt nem igazán tudom értelmezni hogy itt mire gondolsz.
"Például a JOIN is sokkal gyorsabban lefut egy egész számban mint karakterláncban.
Tudomásom szerint az indexelés is gyorsabb egy auto_increment int mezőn.
Szintén gyorsabb/egyszerűbb két int értéket hasonlítgatni egymáshoz mint karakterláncot."
Ezek alapvetően igazak lehetnek, de úgy gondolom a kérdező nem többmilliós felhasználóval számolt. De még szerintem ott sem okozna nagyobb késedelmet mai számítógépeknél.
Szia.
"Egy esetleges felhasználónév váltásnál az összes korábbi kapcsolat megszakad mert olyan mező volt az egyedi kulcs ami nem arra való."
Ezt nem igazán tudom értelmezni hogy itt mire gondolsz."
Arra gondolok hogy van egy felhasználók tábla és van egy másik ami a felhasználókhoz kapcsolódik. Ha pista felhasználónak van ott 3 rekordja akkor az megjelenik a profilján. Azonban ha pista nevét megváltoztatják az adatbázisban akkor a 3 másik rekord eltűnik a neve alól. Azonban ha pista IDjéhez van kapcsolva a 3 rekord akkor ilyen nem fordul elő.
Írtam hogy valószínűleg ez neki jelenleg nem fontos és így is megfelel. De célravezetőbbnek tartom az alapok helyes elsajátítását. Ez a későbbiekben sok problémától óvahtja meg.
"Ezek alapvetően igazak lehetnek, de úgy gondolom a kérdező nem többmilliós felhasználóval számolt. De még szerintem ott sem okozna nagyobb késedelmet mai számítógépeknél."
Igaz is meg nem is. Nem csak a számítógépétől függ a gyorsaság hanem a szerverektől. Azok pedig virtuális szerverek. Egy gépen sok sok weboldallal. Elég kevés számításikapacitást kap egy egy weboldal.
Egy a lényeg. Neki ez most így megfelel azonban szakmaiatlan és később problémákhoz vezethet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!