Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Univerzalno rjesenje za korisnike - ali nista nije savrseno :-(

[es] :: Baze podataka :: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-(

[ Pregleda: 2112 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zelja123

Član broj: 28312
Poruke: 31
212.39.97.*



Profil

icon Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 26.11.2004. u 08:28 - pre 235 meseci


Stvar je u tome što sam htio napraviti korisnike koji su univerzalni pošto ne znam koliko će vrsta korisnika biti u aplikaciji i koje sve atribute ti korisnici mogu imati. Pokušao sam to riješiti pomoću tablica sa atributima i tablice sa stavkama koje sadrže konkretne vrijednosti pojedinih atributa.. Također sam htio olakšati odabir atributa tako što sam preko vrste korisnika odredio koje atribute pojedina vrsta korisnika može imati.

E sada. Stvar u praksi funkcionira. Kreiram neku vrstu korisnika (npr. kupac) i dodajem iz atributa koje taj korisnik može sadržavati. Eventualno dodajem neki novi atribut koji je specifičan za tog korisnika i tako imam lijepo sređene korisnike sa atributima koje je lako dodavati kao i nove vrste korisnika.

Problem je u ispisu. Kako bih mogao ispisati iz ovakve baze korisnike da mi stoje u redovima sa vrijednostima atributa kao na donjoj slici (prikazao sam ispis za dvije vrste korisnika kako bi lakše shvatili u čemu je problem). Pretpostavimo da znam koju vrstu korisnika ispisujem i koji su njegovi atributi(uhvatit ću ih upitom prije), da hoću ispisati samo jednu vrstu korisnika i da hoću da to bude samo jedan sql upit ili jedna storana procedura (koristim SQL Server). Nije mi bitno da upit vraća imena u kolumnama kao na slici (ime, prezime, adresa...) nego to može biti šta bilo (atribut1, atribut2...) kasnije ću ja paziti gdje je šta...

Je li uopće moguće iz ovakve organizacije tablica dobiti ovakve ispise bez puno kompliciranja? Ja sam uspio ali sa puno kodiranja i dosta upita što nikako nije dobro.
Volio bih ostaviti ovakvu organizaciju zbog jednostavnosti odtžavanja i velikih mogućnosti nadogradnje, ali ako ne mogu dobiti normalan ispis onda mi ništa ne znači.

Nadam se da sam dobro objasnio problem, ako nekome nije jasno neka se javi i pita, a ja ću probati sve pobliže objasniti, mislim da će rješenje ovog problema koristiti mnogima jer će moći praviti jednostavnije i učinkovitije baze.

Pozdrav svima i oprostite na duzini posta. Marko
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 26.11.2004. u 08:44 - pre 235 meseci
Ne znam koju bazu koristiš. U MS SQL-u može i ima logike, pod uslovom da se ne preteruje sa korišćenjem: generišeš string sa SELECT upitom, kursorom, u stored proceduri, posle ga u istoj proceduri izvršiš sa EXEC.

Mada, ako ti se atributi ne menjaju u toku vremena, možda da razmisliš o tome da posebne vrste korisnika ipak izdvojiš u posebne tabele. Ipak je ovo rešenje koje si planirao "budženje" atributa.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 26.11.2004. u 08:52 - pre 235 meseci
Da se dopunim...

Polja koja si u test podacima dole stavio nikako nema logike držati među ovim "custom" atributima, jer pretpostavljam da su povezani sa ostatkom baze (saldo, broj računa, mesto). Custom atribute bi trebalo da koristiš samo za neke opisne podatke preko kojih se ništa drugo u bazi ne povezuje.
 
Odgovor na temu

zelja123

Član broj: 28312
Poruke: 31
212.39.97.*



Profil

icon Re: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 26.11.2004. u 11:02 - pre 235 meseci
Citat:
jablan: Da se dopunim...

Polja koja si u test podacima dole stavio nikako nema logike držati među ovim "custom" atributima, jer pretpostavljam da su povezani sa ostatkom baze (saldo, broj računa, mesto). Custom atribute bi trebalo da koristiš samo za neke opisne podatke preko kojih se ništa drugo u bazi ne povezuje.


Hm, mislim da cu tu biti i najveci problem, jer sam bas mislio preko tih atributa povezivati sa nekim drugim tablicama, posto jos ne znam koliko ce ta aplikacija rasti, ali trebala ti, a dodavale bi se druge tablice za koje jos ne znam, i pokusao bih ih povezati, preko atributa.

Znaci za opisne atribute ok, ali za kljuceve ne valja. Prokletstvo...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 26.11.2004. u 11:12 - pre 235 meseci
Pazi, ako već dodaješ novo polje (ili čak tabelu) sa kojima ćeš povezivati korisnike, ne vidim zašto je problem da dodaš spoljni ključ i u tabelu korisnik, ili već u neku izvedenu tabelu (radnik, kupac ili koji već). Mislim, nema smisla praviti generičkim samo deo baze, ako razumeš šta hoću da kažem.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.83.beocity.net.

Sajt: localhost


+5 Profil

icon Re: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-( 27.11.2004. u 00:37 - pre 235 meseci
nije odgovor na pitanje, ali jeste rešenje koje se u praxi dokazalo..

izdvoji zajednička polja za sve vrste korisnika u tabelu "users", a za svaku novu vrstu pravi novu tabelu sa novim poljima (specifičnim za tu vrstu), koja ćeš linkovati sa tabelom users preko user_id.. (zajednička polja ostaju samo u glavnoj tabeli)

 
Odgovor na temu

[es] :: Baze podataka :: Univerzalno rjesenje za korisnike - ali nista nije savrseno :-(

[ Pregleda: 2112 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.