Hogy érdemes mysql-ben tervezni?
Nagyobb projektbe terveznék,otthoni hobbi projekt,magam szórakoztatása, 1 éves egyetemista.
Érdekel a webes dolog, és szerintem eléggé jól megy, de még nagyobb bázist nem terveztem, nem tudom,hogy lenn értelme nekikezdeni.
Felvázolom az elképzelésem.
Egy szöveg alapú stratégiai,egymás ellen játszós dolog lenne.
Lényeg, hogy az lenne a tervem, hogy nők futtatásával kéne foglalkozni,és minnél nagyobb birodalmat felépíteni, bizonyos rangok alapján,pénz...stb.
Na de több problémám is van, az első,hogy mindent érdemes külön táblába kezelnem?
Nem lenne elég egy user tábla és abba mindent besózok?
Mint például a vagyona, fejlődési szintje, fegyverei, lakása, stb..
Vagy ezt így lenne érdemes megcsinálni,hogy a user táblából igazából akkor kiolvastatom az alap adatokat, név,jelszó,rang.
Akkor létrehozni még egy táblát pl skill: itt lenne olyan sor,hogy xp(ez a fejlődés)
Lenne ittems:fegyverek,védelem,pénz,banda,nők..stb
Így lenne a jobb a megoldás,hogy mindent külön táblába szeparáljak?
Rengeteg szakirodalom van az adatbazistervezésről, olvass el egyet. Nagyobb téma ez, minthogy egy fórumkommentbe össze lehetne foglalni.
Mindenesetre se a mindent egy táblába, se a mindent külön táblába megoldás nem lesz jó. Adatbázis normalizálás lesz az egyik legfontosabb kulcsszavad.
Még azt is hozzátenném, hogy egy ez is olyan, mint a világon bármi más. Az első adatbázis amit tervetel szar lesz. A második is. Majd a huszadik környéken elkezd értelme lenni a dolognak.
Nem tudom mennyire foglalkoztál már az OOP-vel, de nagyvonalakban elmondható, hogy ami a programodban külön osztály az az adatbázisodban külön tábla legyen.
Mondok egy egyszerű példát.
Tegyük fel, hogy van egy user, akinek van egy neve, egy életereje és egy fegyvere, a fegyvernek pedig ára és egy sebzése.
Mi lesz, ha mindent egy táblába raksz?
User: {nev, eletero, fegyver, fegyversebzes, fegyverár}
Sorok az adatbázisban:
{User1, 100, "Uzi", 30, 50}
{User2, 90, "Uzi", 30, 50}
{User3, 80, "Uzi", 30, 50}
{User4, 50, "RPG", 50, 100}
Itt mar láthatod, hogy valóban duplikáció van, hisz az "Uzi", a 30 (az Uzi sebzése), és az 50 (az Uzi ára), is háromszor szerepel, ráadásul ha egyszer majd változtatni akarod, akkor mindhárom sorban meg kell változtatnod.
Ilyenkor célszerűbb egy User és egy Fegyver adatbázistáblát (és majd egy User és Fegyver osztályt) létrehoznod a következő módon.
User: {nev, eletero, fegyverazonosito}
Fegyver: {fegyverazonosito, fegyvernev fegyversebzes, fegyverar}
Sorok az adatbázisban:
{User1, 100, 1}
{User2, 90, 1}
{User3, 80, 1}
{User4, 50, 2}
{1, "Uzi", 30, 50}
{2, "RPG", 50, 100}
Igy mar az "Uzi", a 30 és az 50 is csak egyszer szerepel, megszüntettük a duplikációt.
Erről szólnak egyébként a normálformák, nézz utána ha esetleg nem ismered őket.
Hmm, végülis elkezdtem, és úgy lesz,hogy egyelőre beírok mindent a user táblába
Users:
-Username
-Password
-level
-Healt
-Power
-Cash
-Attack
-Deffens
még mondjuk van egy pár szóba forgó dolog,hogy az élet egész szám vagy lebegő pontos legyen..stb na mindegy mindenképp akkor beleásom magam a dologba,elolvasok pár szakirodalmat, hisz idő van :)
Igen a tárgyaknak szeretnék majd külön valamit.
De egyelőre nagyon képlékeny a dolog.
Persze oop-zek csak :D
Ja és még egy kérdés,nem tudom,hogy ez mennyire elfogadott dolog,hogy a felhasználót így tisztitom,hogy plusz függvényként hívom meg
mysql_real_escape_string-et így,hogy.
Hogy van egy adatbázis objecktem, és ott létrehozok egy publkus fuction-t
pl tisztitás/cleaner
és akkor magára az inputra már így menne,hogy:
$username = database->cleaner($_POST.....stb)
"1 éves egyetemista."
Elso evben nem tanitottak nektek a normal formakrol??
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!