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

Rad sa bazom kod izmena

[es] :: PHP :: Rad sa bazom kod izmena

[ Pregleda: 3481 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

S A J A
Beograd

Član broj: 226539
Poruke: 1904
*.static.sbb.rs.



+421 Profil

icon Rad sa bazom kod izmena21.12.2016. u 19:24 - pre 88 meseci
Ovo je možda više pitanje za baze ali pošto korstim PHP neka bude ovde.

Dakle, prilikom snimanja neke forme na client strani, dobijem JSON sa podacima koje treba snimiti u bazu. Međutim, ta forma ne sadrži samo vrednosti koje se upisuju u jedan red u bazi nego sadrži neke stavke. Na primer, imamo fakturu koja će imati nepoznat broj artikala i usluga na sebi. Kad stignu sve te stavke posle snimanja, ako je prvi upis onda se očigledno sve INSERT-uje u bazu i to je jasno. Međutim, koji je najbolji način hendlanja izmena:

1. Kad stigne JSON sa podacima, ići stavku po stavku i upoređivati sa bazom pa ono što postoji da se radi UPDATE, ono što ne postoji da se uradi INSERT a zatim videti u bazi šta je višak pa to DELETE.
2. Prosto i seljački: kod upisa obrisati sve prethodne stavke iz baze i INSERT-ovati sve nove.

Koji sistem se generalno koristi?

 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Rad sa bazom kod izmena21.12.2016. u 22:52 - pre 88 meseci
Ako nemaš neke spoljne ključeve ka drugim tabelama ili druga ograničenja koja nisi ovde naveo, onda definitivno 2, u transakciji.
 
Odgovor na temu

K.F. Gaus
Beograd

Član broj: 280577
Poruke: 21



+3 Profil

icon Re: Rad sa bazom kod izmena31.01.2017. u 13:14 - pre 87 meseci
Oba pristupa koja si naveo se koriste, na tebi je da proceniš na osnovu toga kakva ti je baza koji će ti više odgovarati.

Ne znam da li je dozvoljeno postavljanje linkova do drugih sajtova
http://stackoverflow.com/quest...lways-faster-than-deleteinsert
 
Odgovor na temu

Dr.sima

Član broj: 6237
Poruke: 478



+119 Profil

icon Re: Rad sa bazom kod izmena01.02.2017. u 13:59 - pre 87 meseci
Ja ne podrzavam delete, bar ne bez zurnal tablele.
Napravi jos jednu kolonu STATUS kojoj mozes vrednost da menjas u zavisnosti od potrebe (VALID/INVALID).


 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Rad sa bazom kod izmena01.02.2017. u 14:16 - pre 87 meseci
Potpuno se slažem sa onim što je napisao Dr.sima - ne samo da je DELETE nad takvim podacima upitan, čak se treba uzdržavati i sa UPDATE komandom.

U tvom primeru, ako je u pitanju faktura sa stavkama, pitanje je šta se JOŠ desilo osim što je upisan slog (slogovi) u jednoj ili dve tabele. Recimo, odštampana je fakutura koja je završila u nekom DMS-u. Poslata je faktura kupcu. Promenjeno je stanje u skladištu. Urađeno je knjiženje po fakturi itd.

Bez obzira da li se sve gornje zaista i desilo, pitanje je za šta ti trebaju podaci o kojima je reč, pa prema tome treba doneti i odluku.

Jedan pristup, na primer ako podatak treba da završi u nekom DWH sistemu je da se doda polje GENERATION ili VERSION. Ovo je, po meni, bolje rešenje nego imati statusno polje valid/invalid. Na ovakav način imaš istoriju promena, pa možeš iz istorije da rekonstruišeš željeno krajnje stanje. U DWH se takvi podaci NIKADA ne brišu, ali ako je tebi potrebno da imaš takve podatke u transakcionoj bazi, na ovaj način možeš da uradiš čišćenje podataka i da u transakcionoj bazi ostaviš samo poslednju generaciju ili verziju podataka.

Drugi pristup je da u JSON poruku dodaš neke meta podatke. Tipa, ako je dodatata stavka, staviti neki status new=true. Ako je stavka obrisana dodati deleted=true, ako je promenjena, staviti old i new vrednosti za svako polje i oznaku da je stavka apdejtovana.
 
Odgovor na temu

[es] :: PHP :: Rad sa bazom kod izmena

[ Pregleda: 3481 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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