Kezdőoldal » Számítástechnika » Programozás » SQL, jól működő adatbázis?

SQL, jól működő adatbázis?

Figyelt kérdés

Sziasztok, mennyivel jobban működik egy adatbázis, ahol például a felhasználóhoz tartozó tulajdonságokat nem név szerint (minden névből csak 1 lehet), hanem a felhasználó egyedi ID-je szerint társítjuk?

Pl. melyik a jobb:


WHERE Nev='Kovacs Istvan'

WHERE Felh=55266


Érdemes átszerkesztenem az adatbázisomat, vagy mostantól a szám szerinti azonosításra áttérnem, és később az egész adatbázist átírni, vagy nincs nagy különbség? (Csak mert pl. ha név szerint van társítva, akkor könnyebb eligazodni az adatbázisban)



2015. jan. 17. 21:46
 1/10 anonim ***** válasza:
Mi van ha két embernek ugyan az a neve?
2015. jan. 17. 21:50
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Mi van, ha két "Kovacs Istvan" van? Honnan tudod melyikről van szó?
2015. jan. 17. 21:50
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
Nem konkrétan ilyen a rendszerem. Username alapján van a megkülönböztetés, ami pedig csak egyedi lehet.
2015. jan. 17. 22:03
 4/10 anonim ***** válasza:
Akkor lehet használni a felhasználónevet is elsődleges kulcsnak, de int-eken gyorsabban végzi a keresést az SQL, mint varchar-on.
2015. jan. 17. 22:09
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

Itt olvashatsz egy kis tesztet is erről:

[link]

2015. jan. 17. 22:14
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
Ja, mondjuk ezzel most pont jól megcáfoltam magam. :D Inkább csöndben maradok és figyelek.
2015. jan. 17. 22:16
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

Megdöbbentő, ez hogy lehetséges?


Hiszen 1 karakter 1 bájt, míg 1 bájton 255-ig lehet elszámolni. Szóval miért nem könnyebb a 243-as id-jűt megtalálni, mint a KovacsPisti felhasználónevet?

2015. jan. 17. 23:43
 8/10 anonim ***** válasza:

Egyrészt az a teszt semmit sem ér mert nem ugyan azt a lekérdezést állítja egymással szembe. Az elsőben simán a "ProjectManagement.Issues" oszlopait kérdezi le, a másodikban pedig egy halom INNER JOIN művelet eredményének oszlopait. És mint tudjuk, az INNER JOIN költséges művelet.


Valójában nincs nagy teljesítmény különbség, és elvileg az int egy picivel gyorsabb. Ugyan implementáció függő de valószínűleg a kulcsok átmennek egy hash függvényen és onnantól kezdve ugyan úgy vannak lekezelve (optimalizációt és keresőtáblát leszámítva). A hashelés számítási költségében lehet egy apró eltérés, de elenyésző a lemez olvasási sebességéhez képest.


És az eredeti kérdésedre is válaszolva: a kulcs legyen egyedi és ne lehessen megváltoztatni. A felhasználónév lehet hogy egyedi, de mi van ha meg akarod változtatni a felhasználó neved? Embereknél a személyi szám is egyedi de meg szokott változni bizonyos időközönként. Ezért használnak inkább ID-t. Ha biztos nem kell majd megváltoztatni a mezőt akkor lehet kulcs. Azt használd ami kényelmesebb, vagy értelmesebb.

2015. jan. 18. 06:59
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:

Tényleg, erre nem gondoltam. Ebből a szempontból tényleg hasznosabb lenne az ID.

De igazából ez is megoldható, csak annyi az egész, hogy minden hozzátartozó dolognál is megváltoztatom a nevét.

És cserébe átlátható a DB.

2015. jan. 18. 09:39
 10/10 anonim ***** válasza:

Csak elmesélem neked, mivel foglalkozom mostanában.

Két adatbázis 1-1 tábláját kell összehoznom úgy, hogy nemcsak külön-külön kell egyedinek lenni a felhasználónévnek, hanem együtt a kettőben is. Érted, két külön adatbázis. Regisztrációnál, módosításnál le kell csekkolni, hogy a másik adatbázisban foglalt-e a név. Természetesen most pár tucat nevet meg kell változtatnom, mert már van ütközés. Természetesen ezeknek a rekordjait az auditokban, biztonsági másolatokban, régebben mentett táblázatokban utólag is be kell tudni azonosítani! Erre 5-8 éve, mikor ezek készültek, senki nem gondolt.

Hát így. Remélem, értesz belőle.

2015. jan. 18. 09:41
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!