Višekorisnička WEB aplikacija - dobra praksa
09.03.2020. u 16:16 · pre 80 meseci
#1
Zdravo svima,
Imam dilemu oko toga, šta bi bila dobra praksa u projektovanju baze tj. tabela za višekorisničke WEB aplikacije.
Konkretno, da li je za primer gde treba za više korisnika obezbediti da svako od njih ima listu proizvoda koje prodaje (ako je na primer WEB Prodavnica u pitanju), da se sve to stavi u jednu tabelu sa ovakvom strukturom:
Tabela Proizvodi ima sledeće kolone:
Korisnik,
Proizvod,
... (nije bitno na dalje)
To bi značilo da tabela ima slogove:
Korisnik Proizvod
Pera Televizor
Pera Kompjuter
Pera Tastatura
Mika Kompjuter
Mika Monitor
U ovakvom modelu, u svakom baratanju sa podacima, koristio bih uslov da je korisnik = ulogovani korisnik i sa njim radio dalje operacije (select, insert, update...)
Na primer u SQL-u bi to izgledalo ovako:
SELECT * FROM Proizvodi
WHERE Korisnik = 'Pera'
AND Proizvod .... (dalje nije bitno)
Ovako bi uz neki bag u programiranju rizikovao da Mika možda vidi podatke koji su zapravo Perini.
Na MS SQL-u postoji mogućnost da se iste tabele kreiraju pod različitim Shema-ma, pa bi mogao da napravim istu tabelu i za Peru i Miku, ali pod shemama koje se zovu:
Pera.Proizvodi
Mika.Proizvodi
U prvom primeru sa jednom tabelom, naravno podrazumevana je shema DBO, tj.
dbo.Proizvodi.
Model sa različitim Shema-ma mi deluje jako komplikovan.
Zbog toga sam pokrenuo ovo pitanje da vidim šta je dobra praksa i kako se rešavaju ovakvi problemi.
Imam dilemu oko toga, šta bi bila dobra praksa u projektovanju baze tj. tabela za višekorisničke WEB aplikacije.
Konkretno, da li je za primer gde treba za više korisnika obezbediti da svako od njih ima listu proizvoda koje prodaje (ako je na primer WEB Prodavnica u pitanju), da se sve to stavi u jednu tabelu sa ovakvom strukturom:
Tabela Proizvodi ima sledeće kolone:
Korisnik,
Proizvod,
... (nije bitno na dalje)
To bi značilo da tabela ima slogove:
Korisnik Proizvod
Pera Televizor
Pera Kompjuter
Pera Tastatura
Mika Kompjuter
Mika Monitor
U ovakvom modelu, u svakom baratanju sa podacima, koristio bih uslov da je korisnik = ulogovani korisnik i sa njim radio dalje operacije (select, insert, update...)
Na primer u SQL-u bi to izgledalo ovako:
SELECT * FROM Proizvodi
WHERE Korisnik = 'Pera'
AND Proizvod .... (dalje nije bitno)
Ovako bi uz neki bag u programiranju rizikovao da Mika možda vidi podatke koji su zapravo Perini.
Na MS SQL-u postoji mogućnost da se iste tabele kreiraju pod različitim Shema-ma, pa bi mogao da napravim istu tabelu i za Peru i Miku, ali pod shemama koje se zovu:
Pera.Proizvodi
Mika.Proizvodi
U prvom primeru sa jednom tabelom, naravno podrazumevana je shema DBO, tj.
dbo.Proizvodi.
Model sa različitim Shema-ma mi deluje jako komplikovan.
Zbog toga sam pokrenuo ovo pitanje da vidim šta je dobra praksa i kako se rešavaju ovakvi problemi.